日期:2014-05-17  浏览次数:20561 次

这种SQL语句怎么写?
原来的表格式
单号      名称        唯一码
1        AAA           001|002|003
2        AAB           011|022|033
3        AAC           031|023|034

现在需要显示的效果
单号      名称        唯一码
1        AAA           001
1        AAA           002
1        AAA           003
2        AAB           011
2        AAB           022
2        AAB           033
3        AAC           023
3        AAC           031
3        AAC           034


------解决方案--------------------

select 单号,名称,left(stuff('
------解决方案--------------------
'+唯一码+'
------解决方案--------------------
',1,number,''),charindex('
------解决方案--------------------
',stuff('
------解决方案--------------------
'+唯一码+'
------解决方案--------------------
',1,number,''))-1) from tb,master..spt_values where type='p' and number <len(唯一码) and substring('
------解决方案--------------------
'+唯一码+'
------解决方案--------------------
',number,1)='
------解决方案--------------------
'

------解决方案--------------------

--测试数据
if not object_id('Tab') is null
    drop table Tab
Go
Create table Tab([单号] int,[名称] nvarchar(50),[唯一码] nvarchar(50))
Insert Tab
select 1,N'AAA',N'001
------解决方案--------------------
002
------解决方案--------------------
003' union all
select 2,N'AAB',N'011
------解决方案--------------------
022
------解决方案--------------------
033' union all
select 3,N'AAC',N'031
------解决方案--------------------