在SQL Server中用逗号连接整数?
问题描述:
我经常发现我执行以下查询:在SQL Server中用逗号连接整数?
SELECT * FROM TABLE WHERE ID IN (1,2,3,4)
有哪些可以连接一个结果与逗号返回一个整数的函数吗?
例如
concatenate(SELECT ID FROM TABLE)
将返回1,2,3,4
答
这将这样的伎俩......我想这将是更有效的在应用层做的,但有次(报告),当你最终诉诸于这些类型的技巧。
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的查询作为IN
或EXISTS
的子查询?例如:
SELECT * FROM TABLE1 WHERE ID IN (SELECT ID FROM TABLE2 WHERE ...)
[检索SQL关系作为逗号分隔的字符串(的
可能重复http://stackoverflow.com/questions/3875979/retrieving-sql-relationships-as-a-comma-delimited-string ) – Pondlife 2013-05-03 13:21:22