如何查詢出某兩個序号之間(比如001--100)缺少的那些序号。使用SQL的EXCEPT集合運算,解決方法,請參考下面例子:
代碼
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]
執得結果: