【问题标题】:split the value and stores in table拆分值并存储在表中
【发布时间】:2017-09-26 10:09:06
【问题描述】:

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

【问题讨论】:

    标签: sql sql-server


    【解决方案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 行,则需要探索最大递归选项。

    您也可以对“数字”表执行类似操作。

    【讨论】:

    • 你能写出没有 CTC 的查询吗?
    • @Rojelo 。 . .您可以使用数字表。对于少量行,递归 CTE 就足够简单了。
    猜你喜欢
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 2021-04-28
    • 2022-01-14
    • 2017-03-07
    相关资源
    最近更新 更多