2013-05-03 22 views
0

我經常發現我執行以下查詢:在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

回答

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

1

我不會假裝知道你用結果做什麼,但如果你要運行動態SQL(或手動SQL),那麼爲什麼不僅僅使用返回這些ID的查詢作爲INEXISTS的子查詢?例如:

SELECT * FROM TABLE1 WHERE ID IN (SELECT ID FROM TABLE2 WHERE ...) 
[檢索SQL關係作爲逗號分隔的字符串(的