⑴ 請教一段能同時查出上一條記錄及下一條記錄的sql
如果有主鍵自增或者按時間排序的資料庫記錄的話
直接根據當前的記錄的主鍵或時間,大概可以這樣寫
(select * from table where id > 當前id order by id asc limit 1 ) union
(select * from table where id < 當前id order by id desc limit 1)
這樣差不多能滿足
⑵ sql資料庫中沒有上一條記錄,下一條記錄這個概念,這話對不對
資料庫表中記錄沒有次序的概念,然則你應用query每次萌芽到的記錄是按照必定的規律排序了的,比如可以應用first,last,next,recordcount保存query萌芽到的記錄數
⑶ SQL如何獲取上一條..下一條..首尾記錄...
獲得上一條的id
:select
max(id)as
id
from
[表]
where
id<"[你的要查的id]"
order
by
[.....]
獲得下一條的id
:select
min(id)as
id
from
[表]
where
id>"[你的要查的id]"
order
by
[.....]
很笨的辦法但是很直觀·
不知道你是什麼資料庫··根據不同的資料庫有很多不同的寫法··
比如
mysql
中的
limit
或者
mssql
中的
top
寫法多了去啦··呵呵··上面舉個例子罷了··希望對你有幫助
⑷ 關於查詢sql中數據上一條記錄和下一條記錄的sql語句......
sql中是設置的自增列啊;不需輸入當前的id,這里默認的是1;要是是1的話,就只能查到第2個,但3個就不曉得了回答: 當你查到第2個的時候,就獲取第二條的ID,點下一條的時候,就用第二條的id去查,後邊的類推~追問: 主要就是現在的id的獲取問題回答: 第一條就以0開始就行,後邊就獲取查出來的數據的id就行了, 你數據都查出來了,還獲取不到id?追問: id = Request.QueryString["id"]; 我是用這個獲取的;不知對否回答: 你能獲取到值就可以了,調試一下就行了~追問: 關鍵就是無法獲取到值..問題就出現在這里了,卡起了回答:
⑸ 關於查詢sql中數據上一條記錄和下一條記錄的sql語句......
可用row_number來解決。
如student表
id name create_date
1 張三 2015-07-01
2 李四 2015-06-01
3 王五 2015-08-01
4 趙六 2015-04-01
如,要查找張三的create_date前和後各一條數據。
withtas
(selectstudent.*,row_number()over(orderbycreate_date)rnfromstudent)
select*fromstudentwherern=(selectt.rn+1fromtwheret.name='張三')
unionall
select*fromstudentwherern=(selectt.rn-1fromtwheret.name='張三')
結果應是:
id name create_date
2 李四 2015-06-01
3 王五 2015-08-01
⑹ 在asp.net中怎樣顯示SQL資料庫中當前條的上一條,下一條記錄
比如說當前條記錄是:
select * from tb where id=5
那麼上一條是:
select top 1 * from tb where id<5 order by id desc
下一條記錄是:
select top 1 * from tb where id>5 order by id asc
只需要改寫一下您的語句即可。
當一條路走不通,可以嘗試換一種思路,換一個方向思考
⑺ sql 查符合條件的記錄下一條記錄
什麼資料庫啊?
以sqlserver為例,基本使用於所有資料庫
創建測試表
createtabletest
(日期varchar(10),
屬性1int,
屬性2int)
insertintotestvalues('2013-12-10',2,null)
insertintotestvalues('2013-12-11',3,null)
insertintotestvalues('2013-12-12',5,null)
insertintotestvalues('2013-12-13',2,null)
insertintotestvalues('2013-12-14',7,null)
insertintotestvalues('2013-12-15',3,null)
insertintotestvalues('2013-12-16',5,null)
insertintotestvalues('2013-12-17',7,null)
insertintotestvalues('2013-12-18',8,null)
執行
select日期,屬性1,屬性2
from
(select日期,屬性1,屬性2,(selectcount(1)fromtestast2wheret1.日期>t2.日期)asrnfromtestast1)ast
wherernin
(selects.rn+1from(select日期,屬性1,屬性2,(selectcount(1)fromtestast2wheret1.日期>t2.日期)asrnfromtestast1)asswhere屬性1=2)
結果