How to generate a range of numbers between two numbers?

后端 未结 30 2231
执念已碎
执念已碎 2020-11-22 10:16

I have two numbers as input from the user, like for example 1000 and 1050.

How do I generate the numbers between these two numbers, using

30条回答
  •  青春惊慌失措
    2020-11-22 10:34

    -- Generate Numeric Range
    -- Source: http://www.sqlservercentral.com/scripts/Miscellaneous/30397/
    
    CREATE TABLE #NumRange(
        n int
    )
    
    DECLARE @MinNum int
    DECLARE @MaxNum int
    DECLARE @I int
    
    SET NOCOUNT ON
    
    SET @I = 0
    WHILE @I <= 9 BEGIN
        INSERT INTO #NumRange VALUES(@I)
        SET @I = @I + 1
    END
    
    
    SET @MinNum = 1
    SET @MaxNum = 1000000
    
    SELECT  num = a.n +
        (b.n * 10) +
        (c.n * 100) +
        (d.n * 1000) +
        (e.n * 10000)
    FROM    #NumRange a
    CROSS JOIN #NumRange b
    CROSS JOIN #NumRange c
    CROSS JOIN #NumRange d
    CROSS JOIN #NumRange e
    WHERE   a.n +
        (b.n * 10) +
        (c.n * 100) +
        (d.n * 1000) +
        (e.n * 10000) BETWEEN @MinNum AND @MaxNum
    ORDER BY a.n +
        (b.n * 10) +
        (c.n * 100) +
        (d.n * 1000) +
        (e.n * 10000) 
    
    DROP TABLE #NumRange
    

提交回复
热议问题