sqlserver中將查詢結果拼接成字串

2022-03-19 01:53:42 字數 1478 閱讀 4872

#for xml path(param)--將查詢結果以xml格式輸出

select id,name from table1 for xml path

path後面沒有引數時,每行資料被預設標籤包裹,每行列資料被被其列名標籤包裹。 

結果如下

1

holab

2name1

....

- 每行資料最外面包裹的標籤由path的引數控制(沒有引數時,預設為row),所以要去掉則可以直接給乙個空字串作為path的引數。

- 每行列資料所被直接包裹的標籤由查詢結果的列名控制,要去掉只需要保證查詢出來的列沒有列名就可以了(保證沒有列名最簡單的方法是給每個欄位加乙個空字串)。

select (select id+'',name+'' from table1 for xml path(''))
結果如下

1holab2name1....
#stuff函式

stuff(character_expression,start,length,replacewith_expression)

刪除指起始位置(start)指定長度(length)的字元,並在該位置插入代替的字元(replacewith_expression)

#row_number() over(order by column)--為查詢結果新增序號列 

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 ....

#將查詢結果拼接成以逗號分隔的字串--每條資料以逗號分隔

select stuff((select ','+id+':',name+'' from table1 for xml path('')),1,1,'')
結果如下

1:holab,2:name1....
#將查詢結果的每條資料換行顯示(每行開頭新增序號)

select (select row_number() over(order by id)+'、',id+':',name+char(10) from table1 for xml path(''))
結果如下

1、1:holab

2 2、2:name2

3 ....

4 5 --char(10)為sql server中的換行符

6 --因為最後一行也有換行符,所以最後會多一行空白行

sql server 查詢結果集 列 轉行 過程

該方法,實現了,sql server 查詢出的結果集,先放入臨時表,通過臨時表,把列轉為行。1.把結果放入臨時表 select into tab from dbo.operatedefine 2.定義返回表變數 declare rettable table rowid int,values nvar...

SQLServer查詢篩選後的結果集

select row number over order by d.businessdate as 序號 接單日期 d.businessdate,合同號 d.docno,色號 d.proname,客戶 d.cusname,流水號 d.docno,料品 d.iteminfo itemname,工序 a...

SqlServer將查詢結果轉換為XML和JSON

1.查詢結果轉xml declare parametersql nvarchar max select from table declare sql nvarchar max declare xmlstring varchar max declare xml xml declare paramlis...