create while loop with cte

后端 未结 2 714
我在风中等你
我在风中等你 2021-02-04 16:40

how to create sql server cte from a while loop
my loop like this

  declare @ind as int
  declare @code as nvarchar
  set @ind  = 0
   while @ind < 884
           


        
2条回答
  •  被撕碎了的回忆
    2021-02-04 17:37

    If you need table:

    ;WITH Sec(Number) AS 
    (
        SELECT 0 AS Number
        UNION ALL
        SELECT Number + 1
        FROM Sec
        WHERE Number < 884
    ) 
    
    SELECT * FROM Sec
    OPTION(MAXRECURSION 0)
    

    If you need one string:

    ;WITH Sec(Number) AS 
    (
        SELECT 0 AS Number
        UNION ALL
        SELECT Number + 1
        FROM Sec
        WHERE Number < 884
    ) 
    
    SELECT STUFF(a.[Str], 1, 1, '')
    FROM
    (
        SELECT (SELECT ',' + CAST(Number AS NVARCHAR(3)) 
        FROM Sec
        FOR XML PATH(''), TYPE
        ).value('.','varchar(max)') AS [Str] 
    ) AS a
    OPTION(MAXRECURSION 0)
    

提交回复
热议问题