#for xml path(param)--將查詢結果以xml格式輸出
1 select id,name from table1 for xml path- path後面沒有引數時,每行資料被預設標籤包裹,每行列資料被被其列名標籤包裹。2 --id和name為table1的真實字段
上面sql的結果可如下:
1 2 1- 每行資料最外面包裹的標籤由path的引數控制(沒有引數時,預設為row),所以要去掉則可以直接給乙個空字串作為path的引數。3 holab
4 5 6 2
7 name1
8 9 ....
- 每行列資料所被直接包裹的標籤由查詢結果的列名控制,要去掉只需要保證查詢出來的列沒有列名就可以了(保證沒有列名最簡單的方法是給每個欄位加乙個空字串)。
1 select (select id+'',name+'' from table1 for xml path(''))結果:
1 1holab2name1....#stuff函式
stuff(character_expression,start,length,replacewith_expression)
刪除指起始位置(start)指定長度(length)的字元,並在該位置插入代替的字元(replacewith_expression)
#row_number() over(order by column)--為查詢結果新增序號列
1 select id,name,row_number over(order by id) as num from table1結果:
1 id name num#將查詢結果拼接成以逗號分隔的字串--每條資料以逗號分隔2 1 holab 1
3 2 name1 2
4 4 name 3
5 ....
1 select stuff((select ','+id+':',name+'' from table1 for xml path('')),1,1,'')結果:
1 1:holab,2:name1....#將查詢結果的每條資料換行顯示(每行開頭新增序號)
1 select (select row_number() over(order by id)+'、',id+':',name+char(10) from table1 for xml path(''))結果:
1 1、1:holab2 2、2:name2
3 ....
4 5 --char(10)為sql server中的換行符
6 --因為最後一行也有換行符,所以最後會多一行空白行
MSSQL如何將查詢結果拼接成字串
在博問上看到乙個提問 mssql如何將查詢結果拼接成字串 想了一下應該怎麼實現呢,在c 等語言下好實現,但在sql裡實現 還真沒做過。目標 想要在sql中將查詢的結果拼接為 1 2 3 4 5 分析 要進行拼接就要取得每行的值,想到了游標可以做到。於是有了下面的方法 select name from...
sqlserver中將查詢結果拼接成字串
for xml path param 將查詢結果以xml格式輸出 select id,name from table1 for xml path path後面沒有引數時,每行資料被預設標籤包裹,每行列資料被被其列名標籤包裹。結果如下 1 holab 2name1 每行資料最外面包裹的標籤由path的...
Sql Server將一列字段拼接成字串方法
最近在專案中遇到個問題,需要將表中某列字段合併成字串輸出,如果直接通過 全部讀取出來,再遍歷進行拼接顯然不是最好的方法,所以想著能否在資料讀取的時候直接拼接好返回,網上搜了可通過for xml來實現。首先,準備好需要的資料,指令碼如下 if exists select from sysobjects...