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

все

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

Например, я хочу сгладить столбец кода в таблице ниже:

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

Итак, я получу что-то вроде этого:

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

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

Лучше всего будет сделать это с помощью С# (string.Join)

ErikEJ 02.05.2019 14:40

Да, я отредактировал это на С#, и это сработало, спасибо!

ilyes 03.05.2019 11:08
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
2
166
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

1: Использование ОБЪЕДИНЕНИЯ

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;

Вы можете найти более подробную информацию здесь.

Спасибо за ваш ответ, но в Sql Server Compact мы не можем использовать DECLARE или FOR XML PATH.

ilyes 02.05.2019 15:06

Как вы запускаете свои запросы? Это через программу или в окне запроса?

Jim Jimson 02.05.2019 19:44

Через программу, наконец, я сделал это в C# (string.Join), спасибо!

ilyes 03.05.2019 11:10

Рад, что вы решили эту проблему, вы также можете сделать это: stackoverflow.com/questions/1836016/…

Jim Jimson 04.05.2019 10:55
Ответ принят как подходящий

Лучше всего сделать это с помощью С# (string.Join).

Другие вопросы по теме