怎么查詢SQL中連續編號中間的斷號


思路給你:

1、找到你的表中的 連續編號的 最小值。

2、找到你的表中的 連續編號的 最大值。

3、產生一個臨時表,它的一個字段最小值到最大值連續產生記錄。

4、找到臨時表中的 “那個字段中”的 “記錄” 不在 “你的表中” 的 “連續編號” 中存在的所有記錄。

 

參考代碼如下:

-- 初參條件  針對對象表 LS_bas1數據庫里的 TA1 表
-- 查 TA1 表中 ID 號不連續 缺少的記錄
 
--定義 三個變量 最小記錄、最大記錄、記錄搜索用
DECLARE @MINID INT,@MAXID INT,@GOINT INT
 
-- 從TA1表中取得 ID最小的、ID最大的記錄
SELECT @MINID = MIN(ID),@MAXID = MAX(ID) FROM LS_bas1.DBO.TA1
 
-- 從最小記錄開始循環向 臨時表 #LSTAB 里追加記錄,以產生連續的GOID記錄
SET @GOINT = @MINID
SELECT @GOINT AS GOID INTO #LSTAB
WHILE @GOINT < @MAXID BEGIN
  SET @GOINT = @GOINT + 1
  INSERT INTO #LSTAB(GOID) VALUES (@GOINT)
END
 
-- 將#LSTAB中GOID有,與TA1表ID中沒有的記錄找出來,就是你要的
SELECT * FROM #LSTAB 
WHERE GOID NOT IN (
    SELECT ID FROM LS_bas1.DBO.TA1
)
ORDER BY GOID
 
-- 最后,好習慣,清理中間的臨時表
DROP TABLE #LSTAB

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM