示例表 tb 資料如下
id value
—————
1 aa
1 bb
2 aaa
2 bbb
2 ccc
第一種
selectid,
[val]=
( select
[value]+
','from
tb as
b where
b.id
=a.id
forxml path(
'') )
from
tb asa
第一種顯示結果
1 aa,bb,
1 aa,bb,
2 aaa,bbb,ccc,
2 aaa,bbb,ccc,
2 aaa,bbb,ccc,
第二種
selectid,
[val]=
( select
[value]+
','from
tb as
b where
b.id
=a.id
forxml path(
'') )
from
tb as
a group
byid
第二種顯示結果
1 aa,bb,
2 aaa,bbb,ccc,
第三種 (用stuff函式替換掉首端的逗號)
selectid,
[val]=
stuff
( (select',
'+[value
]from
tb as
b where
b.id
=a.id
forxml path(
'')) , 1,
1, '')
from
tb as
a group
byid
第三種顯示結果
1 aa,bb
2 aaa,bbb,ccc
stuff 函式將字串插入另一字串。它在第乙個字串中從開始位置刪除指定長度的字元;然後將第二個字串插入第乙個字串的開始位置。
stuff ( character_expression , start , length ,character_expression_insert )
第四種 (用replace函式將所有空格替換成逗號)
selectid,
[val]=
replace
( (select
[value]as
[data()
]from
tb as
b where
b.id
=a.id
forxml path(
'')) , ''
, ','
) from
tb as
a group
byid
結果與第三種一樣。
合併多行查詢資料到一行
示例表 tb 資料如下 id value 1 aa 1 bb 2 aaa 2 bbb 2 ccc 第一種 select id,val select value from tb as b where b.id a.id forxml path from tb as a 第一種顯示結果 1 aa,bb,...
做一行愛一行
2013年9 月30日13 04 34 地點 公司 筆者 小菜 it界高手很多,謙虛進步自己 目前適合 android iphone 在除錯階段 內容 今天是九月的最後一天了,也沒有太多的心思的編寫 了,看看這個月的工作效率,確實不是很高。最近也在看一本書,可能很多的博友都知道這本書的 程式設計師你...
資料一行變多行的SQL查詢
資料一行變多行的sql查詢 對於資料表中的某一資料列,要求顯示時資料不能超過5位,如果超過則多行顯示。例如,當該列值為100000時,需要將其顯示為兩行,其中第一行的該列值為99999,第二行的該列值為1,其他列值完全相同。例如 有一張表產量表t,有三列資料,年份 year 車間號 id 產量 qt...