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