SQL常用問題 分拆列值

2021-05-25 05:25:50 字數 1053 閱讀 3988

--分拆列值

--原著:鄒建

--改編:愛新覺羅.毓華(十八年風雨,守得冰山雪蓮花開)  2007-12-16  廣東深圳

/*有表tb, 如下:

id          value

----------- -----------

1          aa,bb

2          aaa,bbb,ccc

*/--欲按id,分拆value列, 分拆後結果如下:

/*id          value

----------- --------

1          aa

1          bb

2          aaa

2          bbb

2          ccc

*/--1. 舊的解決方法(sql server 2000)

select top 8000 id = identity(int, 1, 1) into # from syscolumns a, syscolumns b

select a.id, substring(a.[values], b.id, charindex(',', a.[values] + ',', b.id) - b.id)

from tb a, # b

where substring(',' + a.[values], b.id, 1) = ','

drop table #

--2. 新的解決方法(sql server 2005)

create table tb(id int,value varchar(30))

insert into tb values(1,'aa,bb')

insert into tb values(2,'aaa,bbb,ccc')

go select a.id, b.value

from(

select id, [value] = convert(xml,' ' + replace([value], ',', '

') + '

SQL精彩語句 分拆列值

1 分拆列值 2 原著 鄒建 3 改編 愛新覺羅.毓華 十八年風雨,守得冰山雪蓮花開 2007 12 16 廣東深圳45 有表tb,如下 6 id value 7 8 1 aa,bb 9 2 aaa,bbb,ccc 10 欲按id,分拆value列,分拆後結果如下 11 id value 12 13...

SQL 2005溢用之 分拆列值

有表tb,如下 id values 1 aa,bb 2 aaa,bbb,ccc 欲按,分拆values列,分拆後結果如下 id value 1 aa 1 bb 2 aaa 2 bbb 2 ccc 之前的老辦法,一般是使用臨時表 select top 8000 id identity int,1,1 ...

交流 SQL 2005溢用之 分拆列值

問題描述 有表tb,如下 idvalues 1aa,bb 2aaa,bbb,ccc 欲按,分拆 values列,分拆後結果如下 idvalue 1aa1bb 2aaa 2bbb 2ccc 1.舊的解決方法 select top 8000 id identity int 1,1 into from s...