如何在 Sql Server Compact 中执行类似 "STRING_AGG" 的操作?
How can I do something like "STRING_AGG" in Sql Server Compact?
大家
我想在 Sql Server Compact 中制作类似 STRING_AGG 的内容。
比如我想把下面table中的代码列展平:
+----+--------+
| 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;
您可以找到更详细的信息 here。
您最好的选择是使用 C# (string.Join
)。
大家
我想在 Sql Server Compact 中制作类似 STRING_AGG 的内容。
比如我想把下面table中的代码列展平:
+----+--------+
| 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;
您可以找到更详细的信息 here。
您最好的选择是使用 C# (string.Join
)。