在SQL Server中用逗号连接整数?

在SQL Server中用逗号连接整数?

问题描述:

我经常发现我执行以下查询:在SQL Server中用逗号连接整数?

SELECT * FROM TABLE WHERE ID IN (1,2,3,4) 

有哪些可以连接一个结果与逗号返回一个整数的函数吗?

例如

concatenate(SELECT ID FROM TABLE)将返回1,2,3,4

+1

可能重复http://stackoverflow.com/questions/3875979/retrieving-sql-relationships-as-a-comma-delimited-string ) – Pondlife 2013-05-03 13:21:22

这将这样的伎俩......我想这将是更有效的在应用层做的,但有次(报告),当你最终诉诸于这些类型的技巧。

DECLARE @listStr VARCHAR(MAX) 
SELECT @listStr = COALESCE(@listStr+',' ,'') + cast(ID as varchar(10)) 
FROM table 
SELECT @listStr 

我学到皮纳尔戴夫这一招看:Create a Comma Delimited List Using SELECT Clause From Table Column

我不会假装知道你用结果做什么,但如果你要运行动态SQL(或手动SQL),那么为什么不仅仅使用返回这些ID的查询作为INEXISTS的子查询?例如:

SELECT * FROM TABLE1 WHERE ID IN (SELECT ID FROM TABLE2 WHERE ...) 
[检索SQL关系作为逗号分隔的字符串(的