天天看點

查詢出某兩個序号之間(比如001--100)缺少的那些序号

查詢出某兩個序号之間(比如001--100)缺少的那些序号

如何查詢出某兩個序号之間(比如001--100)缺少的那些序号。使用SQL的​​EXCEPT​​集合運算,解決方法,請參考下面例子:

查詢出某兩個序号之間(比如001--100)缺少的那些序号
查詢出某兩個序号之間(比如001--100)缺少的那些序号

代碼

IF OBJECT_ID ('#t') IS NOT NULL DROP TABLE #t

GO

--建立一個臨時表

CREATE TABLE #t 

(

    Number NVARCHAR(20)

)

--填充001至100個序号進入這個臨時表中

DECLARE @i INT = 1

WHILE @i <= 100  --最大的序号

BEGIN

    --使用REPLICATE函數,指定的次數(3)複制字元串值

    DECLARE @v NVARCHAR(20) = RIGHT(REPLICATE('0',3) + CAST(@i AS NVARCHAR(20)),3)

    INSERT INTO #t ([Number]) VALUES (@v)

    SET @i = @i + 1

END

--最關鍵是下面這個EXCEPT(差集)運算

SELECT [Number] FROM #t 

EXCEPT

SELECT [序号] FROM [dbo].[ta]

執得結果:

查詢出某兩個序号之間(比如001--100)缺少的那些序号