循环和打印没有消息

时间:2009-11-19 09:30:23

标签: sql sql-server

我使用此循环打印数字

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示例吗?

2 个答案:

答案 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