1. 程式人生 > >Dameng 資料庫查詢Top N記錄

Dameng 資料庫查詢Top N記錄

從SqlServer,mysql,Oracle資料庫新增國產資料庫達夢資料庫支援的過程中,發現達夢真的是大雜燴啊。。。

1、SqlServer中支援Top 關鍵字

select top 5 * from table_a;

2、mysql資料庫支援limit關鍵字

select * from table_a limit 0,5;

3、Oracle可以用rownum 過濾

select * from table_a where rownum <=5;

4、達夢就比較厲害了,top,limit,rownum他都支援,但是top,和limit不能同時存在

select top 5 * from table_a;

top 介紹:

1. TOP <n> 選擇結果的前n條記錄。 2. TOP <n1>,<n2> 選擇第n1條記錄之後的n2條記錄。 3. TOP <n> PERCENT 表示選擇結果的前n%條記錄。

select * from table_a limit 0,5;

limit介紹:

1. LIMIT N:選擇前N條記錄; 2. LIMIT M,N:選擇第M條記錄之後的N條記錄; 3. LIMIT M OFFSET N:選擇第N條記錄之後的M條記錄。

select * from table_a where rownum <=5;

需要注意的是,rownum的執行分配值是在排序和聚合之前進行的,所以,

select * from table_a where rownum <11 order by table_a.age ;

這樣的語句並不會得到所有記錄按照age排序後的前十條,只會得到查到的10條資料然後按照age排序的結果。

所以需要使用:

select * from (select * from talbe_a order by table_a.age) where rownum < 11;

或者:select top 10 from table_a order by table_a.age;