查詢語句:
SELECT
STUFF
(
(
SELECT
',' + --分隔符
KeyID --查詢字段
FROM #tmp --查詢數據表
WITH(NOLOCK)
WHERE 1=1 --查詢條件
FOR XML PATH('')
),
1,-- 0:NULL 1:原樣輸出 2++:首位添加分隔符
1,-- N:截取 N - Len 的字符
''-- 在字符串首尾添加的符號
)
測試語句:
IF EXISTS(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmp')) --判斷臨時表【#tmp】是否存在
BEGIN
DROP TABLE #tmp --刪除臨時表
END
CREATE TABLE #tmp --創建臨時表
(
KeyID VARCHAR(36),
KeyValue VARCHAR(max)
)
--項臨時表插入測試數據
INSERT INTO #tmp VALUES(newid(),'數據一')
INSERT INTO #tmp VALUES(newid(),'數據二')
--查詢語句
--單個字段
SELECT
STUFF
(
(
SELECT
',' + --分隔符
KeyID --查詢字段
FROM #tmp --查詢數據表
WITH(NOLOCK)
WHERE 1=1 --查詢條件
FOR XML PATH('')
),
1,-- 0:NULL 1:原樣輸出 2++:首位添加分隔符
1,-- N:截取 N - Len 的字符
''-- 在字符串首尾添加的符號
)
/*--多字段組合
SELECT
STUFF
(
(
SELECT
',KeyID:'+ KeyID + ';KeyValue:' + KeyValue --查詢字段
FROM #tmp --查詢數據表
WITH(NOLOCK)
WHERE 1=1 --查詢條件
FOR XML PATH('')
),
1,-- 0:NULL 1:原樣輸出 2++:首位添加分隔符
1,-- N:截取 N - Len 的字符
''-- 在字符串首尾添加的符號
)
*/
查詢結果(注:具體結果由自動生成的KeyID決定):
1、單字段:
1B0EC911-5C2B-4FDE-87BB-62981DE2030D,0527DF18-9EDD-484D-B770-B24B13C68CA1
2、多字段組合:
KeyID:33C28B1E-3F75-4119-A944-1DB7541088E0;KeyValue:數據一,
KeyID:4ECF1696-7DB6-43C7-8182-22EEF676E2CF;KeyValue:數據二
說明:
1、數據庫表與臨時表查詢方式一樣,替換表和字段即可,謝謝。