如何使用SQL Server中另一个表计算的列创建表?
例如:
表A :
Name SerialNoStart SerialNoEnd
A 1 3
B 2 4
C 1 1
我想创建一个序列号介于SerialNoEnd
和SerialNoStart
新表格如下:
TableB
:
Name SerialNo
A 1
A 2
A 3
B 2
B 3
B 4
C 1
如何制作?谢谢!
答案 0 :(得分:3)
您可以使用递归CTE分割数据,类似于:
;with data(name, SerialNoStart, SerialNoEnd) as
(
select name, SerialNoStart, SerialNoEnd
from TableA
union all
select name, SerialNoStart +1, SerialNoEnd
from data
where SerialNoStart +1 <= SerialNoEnd
)
select name, SerialNoStart as SerialNo
from data
order by name