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

TSQL-范围内的第一个和最后一个数字,tsql,range,Tsql,Range,我有一张桌子: 1. 2. 3. 4. 5. 6. 9 10 11 12 我需要得到: 1-6 9-12 我怎么能做到? 我需要看到我有两个或两个以上的数字I表,从1到6,从9到12。不,我需要看到表中有两个数字范围,从1到6,从9到12。也许我解释错了。我想不间断地看到第一行和最后一行的数字。现在我想看到第一个数字是1,最后一个是6,下一个是9到12。但下一次会是其他数字,我需要它们的范围。你们如何范围?我找到MINnumber,需要看看哪一个是非应用行中的最后一个数字。在示例中,若数字为4、

我有一张桌子: 1. 2. 3. 4. 5. 6. 9 10 11 12 我需要得到: 1-6 9-12 我怎么能做到?
我需要看到我有两个或两个以上的数字I表,从1到6,从9到12。

不,我需要看到表中有两个数字范围,从1到6,从9到12。也许我解释错了。我想不间断地看到第一行和最后一行的数字。现在我想看到第一个数字是1,最后一个是6,下一个是9到12。但下一次会是其他数字,我需要它们的范围。你们如何范围?我找到MINnumber,需要看看哪一个是非应用行中的最后一个数字。在示例中,若数字为4、5、6、8、9,则MINnumber=4,行中最后一个为6,则下一个min为8,最后一个为9。我想收到2行:4-6,8-9,这是正确的结果,但不是程序。在FROM中,需要从表中选择数字,这不是问题。问题在于,当我不希望统计数据为1-6和9-12时,我希望在范围结束和新范围开始时识别选择。
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