① 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語句......
可用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
③ sql如何判斷前一條數據大於後一條數據
用這個試試
select * from (SELECT ROW_NUMBER() over (order by tdate ) as row,*
FROM 數據表) T where row<id
只支持2000以上版本
④ SQL2008資料庫 查詢指定記錄的前一條記錄
select * from TABLENAME where ID =
(select max(ID) from TABLENAME where ID < &&a)
⑤ SQL 如何返回前一條數據 數據如下
你這個結果出錯了吧
ORDER BY MAIN, ID怎麼會是
127
129
122呢?後面ID是升序哦
而且如果有
1 1 3
1 1 4
的話,你要那個呢?
另外,還需要知道你是什麼資料庫,ORACLE的話,這題目太容易了
這個可以
SELECT cid, mainid, id
FROM TAB t
WHERE NOT EXISTS (SELECT 1
FROM TAB
WHERE MAINID < (SELECT MAINID FROM TAB WHERE ID = 7)
AND mainId < t.mainId)
AND NOT EXISTS (SELECT 1 FROM tab WHERE mainId = t.mainId AND id > t.id)
⑥ SQL語句如何取前10條,10-30條記錄
常用幾種資料庫,取前10條記錄的sql語句寫法。
access:
select top (10) * from table1 where 1=1
db2:
select column from table where 1=1 fetch first 10 rows only
mysql:
select * from table1 where 1=1 limit 10
sql server:
讀取前10條:select top (10) * from table1 where 1=1
讀取後10條:select top (10) * from table1 order by id desc
oracle:
select * from table1 where rownum<=10
取10-30條的記錄:
select top 20 * from 表名 where id not in(select top 10 id from 表名)
(6)sql前一條擴展閱讀:
使用SQL從表中取記錄。
SQL的主要功能之一是實現資料庫查詢。如果你熟悉Internet 引擎,那麼你已經熟悉查詢了。你使用查詢來取得滿足特定條件的信息。
多數Internet 引擎允許邏輯查詢。在邏輯查詢中,你可以包括特殊的運算符如AND、OR和NOT,你使用這些運算符來選擇特定的記錄。
如果需要擴展查詢的結果,可以使用邏輯操作符OR。例如,如果執行一個搜索,搜索所有的其描述中包含Active Sever Pages OR SQL的站點,收到的列表中將包括所有其描述中同時包含兩個表達式或其中任何一個表達式的站點。
如果想從搜索結果中排除特定的站點,可以使用NOT。例如,查詢「Active Sever Pages 」AND NOT 「SQL」將返回一個列表,列表中的站點包含Active Sever Pages,但不包含SQL。當必須排除特定的記錄時,可以使用NOT。
用SQL執行的查詢與用Internet搜索引擎執行的搜索非常相似。 當執行一個SQL查詢時,通過使用包括邏輯運算符的查詢條件,你可以得到一個記錄列表。此時查詢結果是來自一個或多個表。
⑦ 如何用sql語句 取某欄位的前一條數據和後一條數據之間的差值
很簡單呀,可以看看datediff資料庫時間函數
select
id,datediff(day,時間列名,getdate())
from
表明
意思是返回
對應行的,行編號和
時間差值,這條sql語句的返回形式有不同的樣式,可以使毫秒微妙等等,你可以根據你的需求去填寫,上面的是返回
當前時間與時間列相差的
天數
⑧ oracle sql獲取某一條數據中的前一條和後一條
先把數據集的前一條和後一條查詢出來,然後再根據ID查詢這個數據集,例子:
SELECT*
FROM(SELECTID,
NAME,
LEAD(ID)OVER(ORDERBYORDER_COL)NEXT_VALUE,
LAG(ID)OVER(ORDERBYORDER_COL)PREV_VALUE
FROMTABLE_NAME)
WHEREID=''
其中LEAD和LAG函數的參數可以是其他值
⑨ 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語句(如果有其他的查詢條件記得加上other_conditions以免出現不必要的錯誤):
1
select * from table_a where id = (select id from table_a where id < {$id} [and other_conditions] order by id desc limit 1) [and other_conditions];
查詢下一條記錄的SQL語句(如果有其他的查詢條件記得加上other_conditions以免出現不必要的錯誤):
1
select * from table_a where id = (select id from table_a where id > {$id} [and other_conditions] order by id asc limit 1) [and other_conditions];