sql 拼接同列的值

2021-09-08 10:35:45 字數 591 閱讀 2569

sql中有時需要將列的值轉成行的形式,比如下面的資料,具有相同path的zumenid有哪一些,該怎麼做呢?

常見的做法可以參見這篇文章

這裡介紹另外一種拼接列的值的方法,利用xml實現。參見這篇文章

不過這裡要稍微複雜一點,需要用到子查詢。sql如下:

select b.path,

stuff(

replace(

replace(

(select zumenid,path from t_zumen c where c.path = b.path for xml auto),'',''),

1,1,'') zumenids

from

(select distinct path from t_zumen) b -- 先做path的distinct

效果如下:

sqlserver 同字段值拼接 列轉行

2012 08 13 18 20 46 分類 sqlserver 標籤 sqlserver 舉報 字型大小大中小訂閱 select b.systemname 系統,m.name 一級選單,m1.name 二級選單,f.name 按鈕,m1.id into temp from menu m inner...

SQL比較同列資料的方法

查詢選修8105課程,且成績高於其選修的8104的課程成績的學生的學號和成績 8105課程成績 按成績從高到低排序。要求查詢的物件一定是同時選修了8104和8105兩門課的學生 同時課程8105的成績大於8104的成績 成績最終按降序排列 select sno,grade from sc where...

oracle 同列非數字字串的拼接

oracle 不支援wm concat 的解決辦法 sys region id,name 1 a 1 b 2 c 2 d 想要得到結果 1 a,b 2 c,d 這種需求其實可以用 wm concat 這個方法來實現 也可以用自己寫的function 要是自己當前的資料庫不支援wm concat 又不...