все
Я хочу сделать что-то вроде STRING_AGG в Sql Server Compact.
Например, я хочу сгладить столбец кода в таблице ниже:
+----+--------+
| Id | Code |
+----+--------+
| 1 | 256987 |
| 1 | 256985 |
| 1 | 356994 |
+----+--------+
Итак, я получу что-то вроде этого:
+----+------------------------+
| Id | Codes |
+----+------------------------+
| 1 | 256987, 256985, 356994 |
+----+------------------------+
Заранее спасибо!
Да, я отредактировал это на С#, и это сработало, спасибо!
Есть несколько способов сделать это:
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.
Как вы запускаете свои запросы? Это через программу или в окне запроса?
Через программу, наконец, я сделал это в C# (string.Join), спасибо!
Рад, что вы решили эту проблему, вы также можете сделать это: stackoverflow.com/questions/1836016/…
Лучше всего будет сделать это с помощью С# (string.Join)