日期:2014-05-18 浏览次数:20607 次
create table tb(uid varchar(10),list varchar(10),tid varchar(10))
insert into tb select 'A','|1|8|2|','a|b|c'
insert into tb select 'B','|1|3|2|','l|k|t'
insert into tb select 'A','|1|9|4|','p|o|u'
go
select a.uid,substring(a.list,b.number,charindex('|',a.list,b.number+1)-b.number)list,
substring(a.tid,c.number,charindex('|',a.tid+'|',c.number+1)-c.number)tid
from tb a,master..spt_values b,master..spt_values c
where b.type='p' and b.number<=len(a.list) and substring(a.list,b.number,1)<>'|' and substring('|'+a.list,b.number,1)='|'
and c.type='p' and c.number<=len(a.tid) and substring(a.tid,c.number,1)<>'|' and substring('|'+a.tid,c.number,1)='|'
/*
uid list tid
---------- ---------- ----------
A 1 a
A 8 a
A 2 a
A 1 b
A 8 b
A 2 b
A 1 c
A 8 c
A 2 c
B 1 l
B 3 l
B 2 l
B 1 k
B 3 k
B 2 k
B 1 t
B 3 t
B 2 t
A 1 p
A 9 p
A 4 p
A 1 o
A 9 o
A 4 o
A 1 u
A 9 u
A 4 u
(27 行受影响)
*/
go
drop table tb