首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

依据列值生成多行记录的新表,通过语句实现

2013-01-28 
根据列值生成多行记录的新表,通过语句实现。原表结构A B CAA BB 3期望值A B CAA CC 1AA DD 1AA EE 1期望:根

根据列值生成多行记录的新表,通过语句实现。
原表结构
A B C
AA BB 3
期望值
A B C
AA CC 1
AA DD 1
AA EE 1

期望:根据原表的C字段数据生成新表,其中新表行数为原表的C列值,B字段值为新赋值,求实现方式。

[解决办法]

USE test
GO

-->生成表tb

if object_id('tb') is not null 
drop table tb
Go
Create table tb([A] nvarchar(2),[B] nvarchar(2),[C] smallint)
Insert into tb
Select N'AA',N'BB',3
UNION ALL Select N'aa',N'bb',4 -- test


select 
a.A
,REPLICATE(NCHAR(UNICODE(a.B)+b.number),LEN(a.B)) AS B
,1 AS C
from 
tb AS a
,master.dbo.spt_values AS b 

WHERE b.type='p'
AND b.number BETWEEN 1 AND a.C


/*
A    B    C
---- ---- ---
AA   CC   1
AA   DD   1
AA   EE   1
aa   cc   1
aa   dd   1
aa   ee   1
aa   ff   1
*/

热点排行