【发布时间】:2016-03-30 16:07:38
【问题描述】:
过程中有一些while 循环,我想删除它们/替换为临时表或任何其他(不是游标)。
下面我创建了一个虚拟语法,我必须根据一些计算填充TEMP_TABLE 表。请分享任何更好的选择:
SET @J = 0
SET @DIFFERENCE = 10
SET @INCREMENT = 2
WHILE (@J < @DIFFERENCE)
BEGIN
SET @TO_DATE = (SELECT DATEADD(D, @INCREMENT, @TO_DATE))
IF (@TO_DATE <= GETDATE())
INSERT INTO TEMP_TABLE
VALUES(@J, @TO_DATE)
SET @J = @J + @INCREMENT
END
【问题讨论】:
-
有很多关于使用计数表填充日期表的示例?你有没有尝试搜索任何东西?线索是生成数字范围并使用简单的
INSERT INTO ... SELECT ... FROM (tally) ... WHERE (loop condition)
标签: sql sql-server-2008 tsql while-loop temp-tables