虽然我在这里阅读了很多答案,但这是我关于stackoverflow的第一个问题,而且我是SQL的新手。我试图使用WHILE循环(SQL Server 2008)将一些记录插入表中。这是我开始的数据:
SeasID FacilityID PL Zone Section Row FromSeat ToSeat
11 17 1 g2 cf a 1 5
32 18 14 w13 r2 c 10 12
我需要为每个独特的座位插入一行到新表中。这是我要插入的内容:
SeasID FacilityID PL Zone Section Row Seat
11 17 1 g2 cf a 1
11 17 1 g2 cf a 2
11 17 1 g2 cf a 3
11 17 1 g2 cf a 4
11 17 1 g2 cf a 5
32 18 14 w13 r2 c 10
32 18 14 w13 r2 c 11
32 18 14 w13 r2 c 12
我尝试了很多东西,但我认为我还不太了解循环。你能提供的任何帮助都会很棒。
答案 0 :(得分:0)
快速和脏(将1000更改为可能的最高座位数。持久号码表有帮助)
;WITH N(Number) AS (SELECT 1 AS Number UNION ALL SELECT Number + 1 FROM N WHERE Number < 1000)
SELECT TheTable.*, N.Number AS Seat
FROM TheTable
INNER JOIN N
ON ToSeat >= N.Number AND FromSeat <= N.Number
ORDER BY N.Number
OPTION(MAXRECURSION 1000)