分裂
问题描述:
我想创建SQL查询到单个列的值分成像多行表中的值,并存储: 我有两个值,其分割并从存储在表至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
答
您可以使用递归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
@Rojelo。 。 。您可以使用数字表格。对于少量的行,递归CTE很容易。 –