【記錄】sqlserver列轉行查詢 並將查詢結果用逗號分隔開
查詢若干張表,其中有一對多的關係,需求希望能把“多”的那張表的資料在一行輸出,用逗號分隔開。
sqlserver和oracle一樣,自帶了這樣的函式。
先上sql語句:
SELECT
STUFF ( ( SELECT ',' + a.name FROM a WHERE b.id = a.business_id and a.name = '名字' order by a.time desc FOR XML PATH ( '' ) ), 1, 1, '' ) AS Aname,
b.name
from b
where b.name = '另一個名字'
其中
SELECT ',' + a.name FROM a WHERE b.id = a.business_id and a.name = '名字' order by a.time desc FOR XML PATH ( '' )
這一部分已經可以實現列轉行並用逗號分隔了,但是輸出的是這樣的格式:
,名字1,名字2,名字3
所以需要在外面再呼叫STUFF 的函式進行裁剪,把第一個逗號去掉,這樣就可以了。
不過感覺還是oracle更方便,沒記錯的話好像是隻調一個函式就都給安排的明明白白。
相關文章
- MySQL 查詢表所有列名,並用逗號分隔MySql
- sqlserver查詢結果中新增自動編號SQLServer
- mysql查詢結果多列拼接查詢MySql
- SQL查詢 多列合併成一行用逗號隔開stuff()SQL
- 查詢SQLSERVER版本號SQLServer
- 查詢SQLSERVER執行過的SQL記錄SQLServer
- mysql 將查詢到的記錄,按一行,按元祖,將欄位用逗號連線起來。MySql
- sqlserver查詢最接近的記錄SQLServer
- oracle查詢結果外面新增引號Oracle
- mysql 如何查詢逗號“,”分割的字串MySql字串
- [ORACLE BUG]查詢結果錯誤--臨時表並行Oracle並行
- sqlserver表結構查詢SQLServer
- 人大金倉切割逗號拼接的字串,並使用in來查詢字串
- 查詢構造器結果--物件陣列互轉方法物件陣列
- MySQL 將查詢結果匯出到檔案MySql
- ORDER對查詢結果進行排序排序
- sqlserver查詢長括號[資料SQLServer
- DM並行查詢並行
- [Mysql 查詢語句]——查詢指定記錄MySql
- SqlServer查詢資料改動歷史記錄SQLServer
- navicat 匯出查詢結果
- mysql匯出查詢結果MySql
- /*列轉行查詢表資料*/
- 逗號分隔,輸出陣列陣列
- xsl中,對xml文件查詢的結果再次查詢XML
- 資料結構-單連結串列查詢按序號查詢資料結構
- sqlserver查詢一個庫所有表的記錄數SQLServer
- PostgreSQL並行查詢概述SQL並行
- jq用逗號分隔字串字串
- 使用ROWNUM將導致查詢結果集的固化
- 查詢埠號佔用
- Mybatis模糊查詢結果為空MyBatis
- ps aux查詢結果解釋UX
- 備忘:laravel 對查詢結果集可以迴圈where查詢Laravel
- ES查詢之查詢屬性過濾、結果高亮顯示
- 層級查詢並將層級拆分成多列
- SqlServer遞迴查詢SQLServer遞迴
- 查詢鎖表記錄