TSQL - 范围内的第一个和最后一个数字

时间:2017-06-20 11:29:36

标签: tsql range

我有桌子: 1 2 3 4 五 6 9 10 11 12 我需要收到: 1-6 9-12 我怎么能这样做? 我需要看到我有两个或更多的数字i表范围,从1到6和从9到12。

1 个答案:

答案 0 :(得分:2)

SELECT
    CONCAT(MIN(A.b), '-', max(A.b))
FROM
(
    SELECT
        *,
        ROW_NUMBER() OVER (ORDER BY b) RowId
    FROM
        (VALUES (1), (2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)) a(b)
    --WHERE
        --(a.b >= 1 AND a.b <= 6) OR
        --(a.b >= 9 AND a.b <= 12) 
) A
GROUP BY
    A.b - A.RowId