我想创建一个sql查询,将单个列值拆分为多行,如: 我有两个值,它从a到b
分割并存储在表格中create table #density(density decimal (15,2),value decimal (15,2))
declare @a decimal (15,2),
@b decimal (15,2),
@karats decimal (15,2)
set @a='19.99'
set @b='20.02'
set @karats='24.00'
expected result--
density value
19.99 24
20.00 24
20.01 24
20.02 24
答案 0 :(得分:1)
您可以使用递归CTE:
with cte as (
select @a a density
union all
select cast(density + 0.01 as decimal(15,2))
from cte
where density < @b
)
insert into #density (density, value)
select density, @karats
from cte;
注意:如果要插入的行数超过100行,则需要探索max recursion选项。
你也可以用&#34;数字&#34;做类似的事情。表