生成透視列之for xml path

2022-02-18 20:18:44 字數 1393 閱讀 1148

臨時表#t原始資料:

實現如下格式,即根據province分組,把每個組對應的city列以某種格式展示:

實現方法:

select t.province,(

select city+',' from #t where t.province=province for xml path('')

) as 城市群 from #t t

group by t.province

注:如果要去掉每組城市群後面的逗號,有幾種方法可以參考:

--方法一:通過left去掉列最後乙個字元

select province,left(citys,len(citys)-1) citys from(

select province,

(select city+',' from #t where province=t.province for xml path('')

) citys from #t t

group by province

)b--方法二:通過sutff去掉列第乙個字元

select province,stuff(citys,1,1,'') citys from(

select province,

(select ';'+city from #t where province=t.province for xml path('')

) citys from #t t

group by province

)b--方法三:通過stuff去掉列最後乙個字元

select province,stuff(citys,len(citys),1,'') citys from(

select province,

(select city+';' from #t where province=t.province for xml path('')

) citys from #t t

group by province

)b再廢話一下:

select stuff('abcdef',2,3,'ghijk')   結果:aghijkef 

stuff的功能:刪除指定長度的字串並在指定的起始點插入另一組字元 

stuff(character_expression ,start ,length ,character_expression) 

character_expression :操作的字元,start:刪除和插入的起始點,length:刪除的長度,character_expression :要插入的字元 

11 Power Query 透視列的解析

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!透視列 行轉列實現一維轉二維 何為一維表 即看每一行資料我只需要讀取一行資料就可以了 何為二維表 即看每一行資料我需要關注行列方向的資料。比如下圖的乙個一維表,我們如何將它轉換成為二維表呢?之前講到的分組依據是無法實現的。下面我們直接進入pq介面操...

vba 按照某列結果做透視

sub 從首列提取周次到第二列並透視 for i 1 to activesheet.range a1 currentregion.rows.count c activesheet.cells i,1 value activesheet.cells i,2 value mid c,5,2 next a...

動態生成列

create procedure sp createtable tname varchar 100 colscript varchar 1000 colnum int coltype varchar 100 as begin declare s varchar 8000 i int set s cr...