#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 --因為最後一行也有換行符,所以最後會多一行空白行
mysql單錶行轉列 mysql資料行轉列
在你找工作的經歷當中,是否有面試官問過你 資料庫行轉列如何實現?乙個典型的例子如下 有這樣乙個訂單表 om order 一條記錄包含訂單號 建立日期 訂單總金額 讓你統計不同年份對應各月份的銷售情況,要求每一年的銷售情況一行展示,效果如下 年份 一月 二月 三月 四月 五月 六月 七月 八月 九月 ...
資料行轉列例項
在系統開發中常常遇到進行資料的統計,並將資料行轉列的情景,例如表中的表示。但是在資料庫中呈現出來的資料往往是橫行的樣式。這就需要乙個轉換。轉換的方式有兩種方式。1.利用cross join去進行轉換。2.利用case when函式去轉換。資料庫查詢出的結果 張三170 李四90 王五180 需要資料...
mysql行轉列 subs mysql 行轉列
存在表score,記錄學生的考試成績,如下圖所示 現要求以 學生姓名,語文,數學,英語 這種格式顯示學生成績,如下圖所示 具體步驟如下 1 首先,使用case when函式輸出單個課程的成績 case when course 語文 then score end as 語文 case when cou...