我在 SQL Server 中有這個查詢,并且我有一個列名為 Gun int 型別的表 Rezotel。
我想用 Gun 列
Edit 中的值替換 'WHILE @i - 100 <= 0' 中的數字 100 - 關鍵是我希望它在同一行上迭代 N 次,其中 N 等于該 Gun 的值行,因此將每一行的插入復制 N 次
DECLARE @TEST table (RecID int, D1 DATE)
DECLARE @i int = 0;
WHILE @i - 100 <= 0
BEGIN
SET @i = @i 1
INSERT INTO @TEST
SELECT RezOtel.RecID,RezOtel.CikisTarihi-@i AS D1 FROM RezOtel
END
uj5u.com熱心網友回復:
根據評論,您所追求的可能類似于以下內容(當然未經測驗)。
使用計數表(數字表)或動態生成的數字系列,如下所示(SQLServer 2022 將支持GenerateSeries()),將其連接到源表并根據行的值限制行Gun
with
l0 as (select 0 v from (values(0),(0),(0),(0),(0),(0),(0),(0),(0),(0))v(v)),
l1 as (select 0 v from l0 a cross join l0 b),
nums as (select n = Row_Number() over(order by @@Spid) from l1)
insert into @TEST (RecID, D1)
select r.RecID, DateAdd(day, -n, r.CikisTarihi) as D1
from RezOtel r
join nums n on n.n <= r.Gun;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/516932.html
標籤:sqlsql服务器循环
上一篇:呼叫中斷方法
