SQL拼接字段数据
查詢語句:
SELECT STUFF ((SELECT ',' + --分隔符KeyID --查詢字段FROM #tmp --查詢數(shù)據(jù)表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】是否存在 BEGINDROP TABLE #tmp --刪除臨時表 ENDCREATE TABLE #tmp --創(chuàng)建臨時表 (KeyID VARCHAR(36),KeyValue VARCHAR(max) )--項臨時表插入測試數(shù)據(jù) INSERT INTO #tmp VALUES(newid(),'數(shù)據(jù)一') INSERT INTO #tmp VALUES(newid(),'數(shù)據(jù)二')--查詢語句--單個字段 SELECT STUFF ((SELECT ',' + --分隔符KeyID --查詢字段FROM #tmp --查詢數(shù)據(jù)表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 --查詢數(shù)據(jù)表WITH(NOLOCK) WHERE 1=1 --查詢條件FOR XML PATH('')),1,-- 0:NULL 1:原樣輸出 2++:首位添加分隔符1,-- N:截取 N - Len 的字符''-- 在字符串首尾添加的符號 ) */?查詢結(jié)果(注:具體結(jié)果由自動生成的KeyID決定):
1、單字段:
1B0EC911-5C2B-4FDE-87BB-62981DE2030D,0527DF18-9EDD-484D-B770-B24B13C68CA1
2、多字段組合:
KeyID:33C28B1E-3F75-4119-A944-1DB7541088E0;KeyValue:數(shù)據(jù)一,
KeyID:4ECF1696-7DB6-43C7-8182-22EEF676E2CF;KeyValue:數(shù)據(jù)二
?說明:
1、數(shù)據(jù)庫表與臨時表查詢方式一樣,替換表和字段即可,謝謝。
?
轉(zhuǎn)載于:https://www.cnblogs.com/jschar/p/6142055.html
總結(jié)
- 上一篇: mysql中使用concat例子
- 下一篇: SQL server插入数据后,获取自增