㈠ sql 語句問題,如何查詢一個時間 最近的10條記錄
select top(10)* , abs(datediff(day,時間列名,'2008-02-22')) as 相差天數 from 表名
order by 相差天數--排序,升序
---------------------------------
abs--取絕對值的
datediff(day,time,'2008-02-22')) --取出相差'20080222'的相差天數
並且取別名為aaaa
㈡ 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 表名)
(2)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 查詢 大於 並且距離 當前日期 最近的一條記錄
可以參考以下幾種方法:
1、sqlserver的語法:
select * from table t where t.date = ( select min( date ) from tablet1wheret1>= getdate() )
2、在oracle中可寫成如下:
select * from 表 whereRQin (select min(RQ) from 表 whereRQ>sysdate);
(3)sql查詢最近的幾條記錄擴展閱讀:
SQL參考語句
增加列
Alter table table_name add column_name column_type [default 默認值]--在表中增加一列,[]內的內容為可選項
刪除列
Alter table table_name drop column column_name--從表中刪除一列
添加主鍵
Alter table tabname add primary key(col)
㈣ sql server 按時間 查詢最近幾次的修改記錄
假設表名為a,姓名欄位為Name, 時間欄位為Date
1. 如果可以使用開窗函數, 以姓名分開, 按照時間降序, 分別記錄rownum, 篩選出rownum小於等於2的就是最近的兩次
select *, ROW_NUMBER() OVER (PARTITION BY a.[Name] order by a.[Date] desc) rownum from a
where rownum <= 2
2. 沒有開窗函數可以用子查詢
SELECT * from a t1 where (select count(*) from a t2 where t2.Name= t1.Name and t2.Date> t1.Date) < 2 order by t1.Date desc
或者
SELECT * from a t1 where t1.Date in (select top 2 Date from a t2 where t2.Name= t1.Name order by t2.Date desc) order by t1.Date desc
㈤ sql server查詢距離當前時間最近的一條記錄,並且記錄的時間大於當前時間
selecttopn*fromtablewherecreate_date>getdate()orderbycreate_dateASC
這個語句就行了,要拉幾條就把n換成幾
這個語句首先按時間篩選大於當前時間的,然後按時間排序,從小到大排序,所以排前面的是離現在比較近的時間
㈥ 怎麼寫sql 查詢近一年的記錄
1. 首先,我們需要創建一個新的數據表並准備一些數據。
㈦ sql 如何查詢同一個欄位中,日期最近的那個記錄
使用「order by 欄位名 desc」對日期欄位進行倒序排序即可。
sql語法:select * from 表名 order by 日期欄位名 desc
其中,排序的時候order by 後面跟著需要進行排序的欄位名,排序可以有兩種,默認是asc升序(在sql中可以不寫),如果希望降序排列的話,可以使用desc。如你想要最近的日期的話就只需要降序即可。
舉例:如tpl_purchase_order 是我的訂單表,該表有一個欄位創建日期(欄位名:CREDATE)是日期類型,希望通過sql實現按照按照創建日期由近到遠的順序排列。
對應sql:select * from tpl_purchase_order order by credate desc;
sql執行後輸出結果為:
注意:在以上的結果中有兩個相等的公司名稱 (W3School)。只有這一次,在第一列中有相同的值時,第二列是以升序排列的。如果第一列中有些值為 nulls 時,情況也是這樣的。
㈧ SQL查詢出距當前時間最近的一條或多條記錄。
selecta.*from
表名asa,
(select物料,max(生效日期)as最新生效日期from表名groupby物料)asb
wherea.物料=b.物料anda.生效日期=b.最新生效日期
表名替換一下
㈨ 資料庫讀取前幾條記錄的SQL語句大全
取前10條記錄的sql語句寫法:
1、access:
select top (10) * from table1 where 1=1
2、db2:
select column from table where 1=1 fetch first 10 rows only
3、mysql:
select * from table1 where 1=1 limit 10
4、sql server:
讀取前10條:select top (10) * from table1 where 1=1
讀取後10條:select top (10) * from table1 order by id desc
5、oracle:
select * from table1 where rownum<=10
(9)sql查詢最近的幾條記錄擴展閱讀
PL/SQL的流程式控制制語句,包括如下三類:
l 控制語句: IF語句
l 循環語句: LOOP語句, EXIT語句
l 順序語句: GOTO語句, NULL語句
條件語句:
IF <布爾表達式> THEN
PL/SQL 和 SQL語句
END IF;
IF <布爾表達式> THEN
PL/SQL 和 SQL語句
ELSE
其它語句
END IF;
IF <布爾表達式> THEN
PL/SQL 和 SQL語句
ELSIF < 其它布爾表達式> THEN
其它語句
ELSIF < 其它布爾表達式> THEN
其它語句
ELSE
其它語句
END IF;