【記錄】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
- mysql 將查詢到的記錄,按一行,按元祖,將欄位用逗號連線起來。MySql
- mysql 如何查詢逗號“,”分割的字串MySql字串
- 人大金倉切割逗號拼接的字串,並使用in來查詢字串
- sqlserver查詢長括號[資料SQLServer
- SqlServer查詢資料改動歷史記錄SQLServer
- DM並行查詢並行
- 資料庫儲存id+逗號,查詢資料庫
- ORDER對查詢結果進行排序排序
- 逗號分隔,輸出陣列陣列
- PostgreSQL並行查詢概述SQL並行
- SqlServer遞迴查詢SQLServer遞迴
- Java 中將列表轉換為字串,並使用逗號分隔其中的元素Java字串
- 查詢埠號佔用
- 層級查詢並將層級拆分成多列
- arcgis api for javascript學習-使用FeatureLayer結合FeatureTable實現查詢並能根據查詢結果將檢視縮放至結果的範圍APIJavaScript
- Mybatis 中將 SQL 查詢記錄到控制檯MyBatisSQL
- ES查詢之查詢屬性過濾、結果高亮顯示
- 備忘:laravel 對查詢結果集可以迴圈where查詢Laravel
- mysql 隨機查詢記錄MySql隨機
- ps aux查詢結果解釋UX
- Mybatis模糊查詢結果為空MyBatis
- [20190306]奇怪的查詢結果.txt
- oracle表查詢的並行度Oracle並行
- 錄取查詢
- MYSQL學習筆記25: 多表查詢(子查詢)[標量子查詢,列子查詢]MySql筆記
- 查詢SQL Server的歷史執行記錄SQLServer
- Databricks 第11篇:Spark SQL 查詢(行轉列、列轉行、Lateral View、排序)SparkSQLView排序
- SQLSERVER跨伺服器查詢SQLServer伺服器
- SQLServer DML操作阻塞SELECT查詢SQLServer
- linq 查詢的結果會開闢新的記憶體嗎?記憶體
- MySQL查詢結果匯出方式總結MySql
- Mybatis 查詢語句結果集總結MyBatis
- org.apache.ibatis.exceptions.PersistenceException:記錄mybatis 查詢結果對映異常ApacheExceptionMyBatis