先放SQL語句
select top n id from 表名
where id not in (
select top m id from 表名
)
之前因為這個問題在網上找答案,結果讓們都告訴我是這個:
這明顯是扯淡!
連limit m,n的含義都沒弄清楚,
limit m, m的含義
-
limit m,n是mysql的語法
select * from table limit [m],n;
其中,m—— [m]為可選,是偏移量,如果填寫表示skip步長,即跳過m條;不填寫表示默認為0;
n——顯示條數。指從第m+1條記錄開始,取n條記錄。
-
而在網上的這個說法中把limit m,n定義成了獲取m到n的記錄數,這是不對的
-
limit m,n的意思是獲取表中第m+1條開始往后n條的記錄數
也就是說,limit 8,5 表示獲取表中的第(8+1)到(8+5)條記錄數,而根據網上的說法5-8明顯是行不通的!
測試
下面圖中,左邊是MySQL的表和操作結果,右邊是SQLServer的表和操作結果,證明真正的實現limit m,n的代碼應該是
select top n id from 表名
where id not in (
select top m id from 表名
)