sql server语句 单行数字数据拆分成多行
求sql语句原表RoomIDBedNum10002101111012210134查询效果RoomIDBedNumBedNo100021100022101111101221...
求sql语句
原表
RoomID BedNum
1000 2
1011 1
1012 2
1013 4
查询效果
RoomID BedNum BedNo
1000 2 1
1000 2 2
1011 1 1
1012 2 1
1012 2 2
1013 4 1
1013 4 2
1013 4 3
1013 4 4 展开
原表
RoomID BedNum
1000 2
1011 1
1012 2
1013 4
查询效果
RoomID BedNum BedNo
1000 2 1
1000 2 2
1011 1 1
1012 2 1
1012 2 2
1013 4 1
1013 4 2
1013 4 3
1013 4 4 展开
展开全部
Create TAble T
(
RoomID VArchar(10),
BedNum int
)
Insert into T values('1000', 2)
Insert into 则晌T values('1011', 1)
Insert into T values('1012', 陵前 2)
Insert into T 尺盯清values('1013', 4)
--如果BedNum小于等于2047
Select T.*,number from T Cross join master.dbo.spt_values B
where type='P' and number<=BedNum and number>0
--如果BedNum小于等于32767
with CT
AS
(
Select RoomID,BedNum,1 As number from T
union all
Select RoomID,BedNum,number+1 from CT where number<BedNum
)
Select * from CT
order by RoomID
OPTION (MAXRECURSION 32767)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |