好的 - 我有一张桌子 - 我可以在这里有一个包含多个量子的行 - 我需要做的是在有数量的情况下获取所有行> 1 - 创建多行 - 每个数量一个 - 对每一行执行一个简单的计算 - 比如将val字段乘以2 - 然后将行回滚到另一个临时表或其他东西......?
DECLARE @table TABLE (id int IDENTITY(1,1),
code varchar(10),
codeStatus varchar,
qty int,
val money)
INSERT INTO @table
SELECT
'12345',
'T',
2,
1
答案 0 :(得分:0)
数字表是你的朋友。
对数字表的连接有效地执行了扩展。下面的代码基本上只是问题的“扩展”部分。在此之后,应用您需要的任何转换都是微不足道的,请进入临时表等等。
/*
--create numbers table if don't already have one...
select top 1000000 row_number() over(order by t1.number) as N
into dbo.Numbers
from master..spt_values t1
cross join master..spt_values t2
*/
DECLARE @table TABLE (id int IDENTITY(1,1),code varchar(10), codeStatus varchar, qty int, val money)
INSERT INTO @table SELECT '12345', 'T', 2, 1
select t.id, t.code, t.codeStatus, t.qty, t.val
from @table t
inner join dbo.Numbers n on n.N <= t.qty