有表
tb, 如下:
id value
—–——
1 aa
1 bb
2 aaa
2 bbb
2 ccc
需要得到結果:
id values
—————–
1 aa, bb
2 aaa, bbb, ccc
在sql
server2000
中我們處理的方式一般都是用自定義函式去處理:
舉例如下:
create
function dbo. f_str( @id int)
returns
varchar
( 8000) as
begin
declare
@r varchar
( 8000)
set@r=''
select
@r= @r+
','+
value
from tb where id= @id
return
stuff
( @r, 1, 1,'')
end go
select
id,values
= dbo. f_str( id)
from tb group
by id
在sql
server2005
中,這種統計有了一種新的方法,直接使用語句呼叫
sql2005
的函式實現:
舉例如下:
–示例資料
declare
@t table
( id int
,value
varchar
( 10))
insert
@t select 1,
'aa'
union all
select 1,
'bb'
union all
select 2,
'aaa'
union all
select 2,
'bbb'
union all
select 2,
'ccc'
–查詢處理
select*
from(
select
distinct id
from@t
)aouter
select
[values]=
stuff
(replace
(replace(
( select
value
from @t n
where
id = a. id
forxmlauto ),
',','
),'''/>',''
), 1, 1,'')
)n /*–結果
id values
———–—————-
1 aa,bb
2 aaa,bbb,ccc
(2 行受影響)
–*/
最近從csdn
上又發現了一種方法!
declare
@a varchar
( 100)
select
@a=coalesce
( @a+
'/',
'')+ pname from hpinf where perid like
'207%'
select@a
SQL Server 2000學習筆記(2)
今天學習的是時間函式 日期函式的使用 datepart的格式 datepart abbreviations year yy,yyyy quarter qq,q month mm,m dayofyear dy,y day dd,d week wk,ww weekday dw hour hh minut...
sql server 2000 完全解除安裝 2
引用 發現學校裡的sql server 2000資料庫損壞了重灌後都發生了同樣的問題,那就是安裝sql server資料庫不成功。原因 即使你通過控制面板裡的 新增 刪除程式 正常的解除安裝sql server資料庫,但是,sql server還是沒有完全解除安裝乾淨,還需要手工進行一些操作。因此重...
sql server 2000 完全解除安裝 2
引用 發現學校裡的sql server 2000資料庫損壞了重灌後都發生了同樣的問題,那就是安裝sql server資料庫不成功。原因 即使你通過控制面板裡的 新增 刪除程式 正常的解除安裝sql server資料庫,但是,sql server還是沒有完全解除安裝乾淨,還需要手工進行一些操作。因此重...