我使用此循环打印数字
DECLARE @A Int
SET @A = 33
WHILE @A < 55
BEGIN
SELECT @A as sequence
SET @A = @A + 1
END
GO
但问题是每个循环消息的打印如下:
sequence
-----------
53
(1行受影响)
如何按照这样的顺序打印:
34
35个
36个
37
能为我提供CTE示例吗?
答案 0 :(得分:1)
如果您只想打印该值,则可以使用the PRINT statement。如果要实际返回结果(例如,如果代码是存储过程的一部分),则可以定义临时table type variable,在每个循环上插入数据,然后返回表的内容。
答案 1 :(得分:1)
使用PRINT
DECLARE @A INT
SET @A = 33
WHILE @A < 55
BEGIN
PRINT @A
SET @A = @A + 1
END
GO
对于CTE,您可以尝试
DECLARE @A INT,
@End INT
SET @A = 33
SET @End = 55
;WITH Selected AS (
SELECT @A Val
UNION ALL
SELECT Val + 1
FROM Selected
WHERE Val < @End
)
SELECT *
FROM Selected