SQL精彩語句 分拆列值

2022-01-25 08:33:24 字數 1775 閱讀 5697

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--

1 aa 

14--

1 bb 

15--

2 aaa 

16--

2 bbb 

17--

2 ccc 

1819

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

20select

top8000 id =

identity(int, 1, 1) into # from syscolumns a, syscolumns b

2122

select a.id, substring(a.[

values

], b.id, charindex('

,', a.[

values]+

',', b.id) - b.id) 

23from tb a, # b 

24where

substring(','

+ a.[

values

], b.id, 1) =',

'2526drop

table #

2728

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

29create

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

30insert

into tb values(1,'

aa,bb

') 31

insert

into tb values(2,'

aaa,bbb,ccc

') 32

go33

select a.id, b.value 

34from( 

35select id, [

value]=

convert(xml,''+

replace([

value

], '

,', '

') +

'') from tb 

36 )a 

37select value = n.v.value('

.', '

varchar(100)

') from a.[

value

].nodes('

/root/v

') n(v) 

39 )b

4041

drop

table tb

4243

/*44

id value 

45----------- ------------------------------ 

461 aa 

471 bb 

482 aaa 

492 bbb 

502 ccc

5152

(5 行受影響)

53*/

SQL常用問題 分拆列值

分拆列值 原著 鄒建 改編 愛新覺羅.毓華 十八年風雨,守得冰山雪蓮花開 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...

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