数字序列化

时间:2016-09-27 11:35:43

标签: sql-server sql-server-2008

我有非常大的数字,例如765478865543

我想检查数字之间是否匹配或排序。

是否可以在sql sever中执行此操作?

例如: 我有这样的清单

  

765478865543,765478865544,765478865666,4553355667533,...,

我想知道是否有其他数字中的每个数字的序列化,如果存在序列化,是否可以计算匹配的数字?!

预期结果: number已序列化为序列化 765478865543是的765478865544

1 个答案:

答案 0 :(得分:1)

我不确定你想要什么。您可以在下面找到连续数字:

DECLARE @MockTable TABLE (Id DECIMAL)
INSERT INTO @MockTable        
VALUES  
(765478865543),
(765478865544),
(765478865545),
(765478865550),
(765478865551),
(765478865561),
(765478865581),
(765478865583),
(765478865584)

;WITH CTE
AS
(
    SELECT 
        Id, 
        ROW_NUMBER() OVER (ORDER BY Id) RowId       
    FROM 
        @MockTable
)

SELECT * FROM
(
    SELECT
        MIN(Id) [Start],
        MAX(Id) [End]
    FROM
        CTE
    GROUP BY
        Id - CTE.RowId
) A
WHERE
    A.Start <> A.[End]

结果:

Start                                   End
--------------------------------------- ---------------------------------------
765478865543                            765478865545
765478865550                            765478865551
765478865583                            765478865584