CREATE FUNCTION dbo.GetNumbersInline (@StartVal INT,
@EndVal INT)
RETURNS TABLE
AS
RETURN
WITH N0
AS (SELECT n
FROM ( VALUES ( 1), ( 2), ( 3), ( 4), ( 5), ( 6), ( 7), ( 8), ( 9), ( 10), ( 11), ( 12), ( 13), ( 14), ( 15), ( 16), ( 17), ( 18), ( 19),
( 20), ( 21), ( 22), ( 23), ( 24), ( 25), ( 26), ( 27), ( 28), ( 29), ( 30), ( 31), ( 32), ( 33), ( 34), ( 35), ( 36), ( 37), ( 38),
( 39), ( 40), ( 41), ( 42), ( 43), ( 44), ( 45), ( 46), ( 47), ( 48), ( 49), ( 50), ( 51), ( 52), ( 53), ( 54), ( 55), ( 56), ( 57),
( 58), ( 59), ( 60), ( 61), ( 62), ( 63), ( 64), ( 65), ( 66), ( 67), ( 68), ( 69), ( 70), ( 71), ( 72), ( 73), ( 74), ( 75), ( 76),
( 77), ( 78), ( 79), ( 80), ( 81), ( 82), ( 83), ( 84), ( 85), ( 86), ( 87), ( 88), ( 89), ( 90), ( 91), ( 92), ( 93), ( 94), ( 95),
( 96), ( 97), ( 98), ( 99), ( 100), ( 101), ( 102), ( 103), ( 104), ( 105), ( 106), ( 107), ( 108), ( 109), ( 110), ( 111), ( 112),
( 113), ( 114), ( 115), ( 116), ( 117), ( 118), ( 119), ( 120), ( 121), ( 122), ( 123), ( 124), ( 125), ( 126), ( 127), ( 128),
( 129), ( 130), ( 131), ( 132), ( 133), ( 134), ( 135), ( 136), ( 137), ( 138), ( 139), ( 140), ( 141), ( 142), ( 143), ( 144),
( 145), ( 146), ( 147), ( 148), ( 149), ( 150), ( 151), ( 152), ( 153), ( 154), ( 155), ( 156), ( 157), ( 158), ( 159), ( 160),
( 161), ( 162), ( 163), ( 164), ( 165), ( 166), ( 167), ( 168), ( 169), ( 170), ( 171), ( 172), ( 173), ( 174), ( 175), ( 176),
( 177), ( 178), ( 179), ( 180), ( 181), ( 182), ( 183), ( 184), ( 185), ( 186), ( 187), ( 188), ( 189), ( 190), ( 191), ( 192),
( 193), ( 194), ( 195), ( 196), ( 197), ( 198), ( 199), ( 200), ( 201), ( 202), ( 203), ( 204), ( 205), ( 206), ( 207), ( 208),
( 209), ( 210), ( 211), ( 212), ( 213), ( 214), ( 215), ( 216), ( 217), ( 218), ( 219), ( 220), ( 221), ( 222), ( 223), ( 224),
( 225), ( 226), ( 227), ( 228), ( 229), ( 230), ( 231), ( 232), ( 233), ( 234), ( 235), ( 236), ( 237), ( 238), ( 239), ( 240),
( 241), ( 242), ( 243), ( 244), ( 245), ( 246), ( 247), ( 248), ( 249), ( 250), ( 251), ( 252), ( 253), ( 254), ( 255), ( 256) ) AS ddata (n)),
N1
AS (SELECT 1 AS n
FROM N0 A
CROSS JOIN N0 B),
N2
AS (SELECT 1 AS n
FROM N1 A
CROSS JOIN N1 B),
Nums(n)
AS (SELECT ROW_NUMBER() OVER (ORDER BY n)
FROM N2)
SELECT n + @StartVal - 1 AS Digit
FROM Nums
WHERE n BETWEEN 1 AND (@EndVal - @StartVal + 1) ;