将值拆分并存储在表中

时间:2017-09-26 10:09:07

标签: sql sql-server

我想创建一个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

1 个答案:

答案 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;做类似的事情。表