我經常發現我執行以下查詢:在SQL Server中用逗號連接整數?
SELECT * FROM TABLE WHERE ID IN (1,2,3,4)
有哪些可以連接一個結果與逗號返回一個整數的函數嗎?
例如
concatenate(SELECT ID FROM TABLE)
將返回1,2,3,4
我經常發現我執行以下查詢:在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