1. sql server裡面查詢上一條數據,sql語句怎麼寫(id是不連續的)求大神指教
你應該能先獲得你需要去的數據的 id 的集合吧。
在程序里進行一個id的拼接,
如id的集合為 1、3、5、7、9,可以通過程序拼接成語句 select * from 表名 where id in (1,3,5,7,9) 執行就可以了
2. MS SQL SERVER的表主鍵id是自增量的,但是出現不連續,丟數據
有可能有刪除數據的情況。
還有一種就是,如果已經做了寫表的操作,事務不提交,最後記錄不會提交,但ID會增長的,就會斷號。
3. 請教sql 語句高手,怎麼從一個表中檢索出第10條到第20條記錄,(註:表中的主鍵為ID,但ID不連續。)
select top 20 * from 表名 where 條件 and id not in(select top 10 id from 表名 where 條件)
效率低了點 但是基本算實現功能了 oracle有方法實現 sql server 這個方法比較簡單
創建臨時表方法 存儲過程利用游標操作效率也不比這個高
4. 要查數據表中第30到40條記錄,有欄位ID,但是ID並不連續,如何寫SQL語句
例:select * from employees e where rownum betwon 30 and 40;
解釋:rownum -- 資料庫會為出現在查詢結果里的記錄進行編號,從1開始。
-- 請列印表裡的前5行記錄
select * from employees where rownum<=5;
-- 請列印表裡的第6到第10行記錄
select * from employees where rownum between 6 and 10;
注意:對於rownum只能應用 < ,<=, >,>=, =, between XXX and XXX
5. 請教一個 sql查詢 問題 :已經有ID號1、5、10(不連續),怎麼用SQL查詢下一個記錄
select top(1) * from mytable where ID>"&ID
'不管你中間空多少 反正是查出你當前id的下一條
select top(1) * from WEBNEWS where ID<"&ID&"order by id desc"
'desc 表示降序排列,查上一條
6. 如何用sql語句刪除id 號不連續的三個記錄
delete
from
student
where
id
in
('1','4','6')
或者:
delete
from
student
where
id='1'
or
id='4'
or
id='6'
如果id是數字類型的就不用加單引號
7. 資料庫ID怎麼個連續
ID不連續是因為刪除數據造成的,因為資料庫內核系統分配給記錄的ID是終身有效的,注銷以後不收回,這樣對於數據管理更好。
比如一個論壇,如果你打開帖子清單後一直沒有關閉,那麼這個期間別人已經刪除了的帖子還在你的瀏覽器裡面,還可以點擊,但是會報告帖子找不到,已經被刪除。如果ID重復使用,就可能打開新的帖子,特別是當帖子有查看許可權等控制的時候,會帶來更多的麻煩。