Как я могу сделать что-то вроде «STRING_AGG» в Sql Server Compact? - PullRequest
0 голосов
/ 02 мая 2019

Я хочу сделать что-то вроде STRING_AGG в Sql Server Compact.

Пример:

+----+--------+  
| Id | Code   |  
+----+--------+    
| 1  | 256987 |   
| 1  | 256985 |   
| 1  | 356994 |  
+----+--------+  

желаемый результат:

+----+------------------------+   
| Id | Codes                  |   
+----+------------------------+      
| 1  | 256987, 256985, 356994 |   
+----+------------------------+   

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 03 мая 2019

Лучше всего сделать это, используя C # (string.Join).

0 голосов
/ 02 мая 2019

Есть несколько способов сделать это:

1: Использование COALESCE

DECLARE @Tbl TABLE
(
Name VARCHAR(20)
);

INSERT INTO @Tbl VALUES
('Jim'),
('Tim'),
('Kim');

DECLARE @ReturnVar VARCHAR(256);

SELECT *
FROM @Tbl;

SELECT @ReturnVar = COALESCE(@ReturnVar + ', ', '') + Name
FROM @Tbl;

SELECT @ReturnVar;

2: Использование XML

DECLARE @Tbl TABLE
(
Name VARCHAR(20)
);

INSERT INTO @Tbl VALUES
('Jim'),
('Tim'),
('Kim');

DECLARE @ReturnVar VARCHAR(256);

SELECT STUFF((SELECT ',' + Name
                           FROM @Tbl
                           FOR XML PATH('')),1,1,'') AS Name;

Вы можете найти немного большедеталь здесь .

...