【SQL 學習】求一個表中列值的最前三名
表A是個職工工資表,現在你寫一個sql,實現如下功能:
1.返回表中所有結果
2.將工資最高的3個職工記錄資訊按工資從低到高排序放在查詢結果的前3個最高工資記錄
3.其他的記錄以正常的select結果輸出
寫一個sql來實現
利用
比較大小
select decode(sign(4-變數1),1,-變數1,變數1) from dual;
sign()函式根據某個值是0、正數還是負數,分別返回0、1、-1
SQL> select sign(3),sign(-3),sign(0) from dual ;
SIGN(3) SIGN(-3) SIGN(0)
---------- ---------- ----------
1 -1 0
SQL> conn scott/yang
已連線。
SQL> select empno ,sal ,rn
2 from
3 (select empno ,sal ,row_number() over (order by sal desc ) rn from emp)
4 order by decode(sign(4-rn),-rn,rn);
EMPNO SAL RN
---------- ---------- ----------
7839 5000 1
7902 3000 2
7788 3000 3
7566 2975 4
7698 2850 5
7782 2450 6
7369 800 14
7844 1500 8
7934 1300 9
7521 1250 10
7654 1250 11
7876 1100 12
7900 950 13
7499 1600 7
已選擇14行。
SQL> select empno ,sal ,rn
2 from
3 (select empno ,sal ,row_number() over (order by sal desc ) rn from emp)
4 order by decode(sign(4-rn),1,-rn,rn);
EMPNO SAL RN
---------- ---------- ----------
7788 3000 3
7902 3000 2
7839 5000 1
7566 2975 4
7698 2850 5
7782 2450 6
7499 1600 7
7844 1500 8
7934 1300 9
7521 1250 10
7654 1250 11
7876 1100 12
7900 950 13
7369 800 14
已選擇14行。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-677657/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server一行多列求最大值SQLServer
- 【SQL 學習】表連線--natural join 的一個bugSQL
- 貼一個求表空間的sql 語句SQL
- Js陣列物件的屬性值升序排序,並指定陣列中的某個物件移動到陣列的最前面JS陣列物件排序
- 快速學習nodejs系列:一、寫在最前NodeJS
- 使用PL/SQL找到兩個表中的相似值FKSQL
- SQL Server中獲取一個資料庫的所有表的列數SQLServer資料庫
- 怎樣用一個佇列和一個棧實現求一個表示式的值?佇列
- 演算法求陣列中的最大值最小值演算法陣列
- 【SQL 學習】一個面試題SQL面試題
- javascript 將一個陣列中的元素的值複製到另一個已有資料的陣列中JavaScript陣列
- 【SQL 學習】LEVEL 偽列SQL
- excel表格中怎樣將一列的數值全部加上一個數值Excel
- 把一個一中的欄位更新另一個表中的t-sqlSQL
- 陣列1——求一個陣列的最大子陣列陣列
- 學習筆記----一句SQL語句寫個乘法表筆記SQL
- 求一個陣列中沒有出現的最小正數陣列
- PacVim:一個學習 vim 命令的命令列遊戲命令列遊戲
- 【SQL 學習】表連線SQL
- 求一個sql。多謝各位SQL
- 將一個陣列賦值給另外一個陣列陣列賦值
- 查詢一個表的一列插入到另一個表
- 求陣列中k個數的所有組合陣列
- ORACLE能不能給一個表中的列授權Oracle
- Sql查詢 一個表中某欄位的資料在另一個表中某欄位中不存在的SQL
- 向資料庫中全部表中增加一個欄位的SQL資料庫SQL
- PHP 如何根據鍵值刪除一個陣列中的元素PHP陣列
- SQL 行轉列 PIVOT 學習示例SQL
- sql中的擴充套件學習SQL套件
- 設定SQL標識列的值SQL
- 「Excel技巧」Excel中根據某列的值去彙總另外一列的值Excel
- 巧妙利用快速排序法的原理求一個陣列中的第10大元素排序陣列
- 程式設計求一維陣列中最大和最小的元素值程式設計陣列
- 檢視一個表中的幾列的資料都是一樣的數量
- SQL Server資料庫檢視一個資料表各列的註釋SQLServer資料庫
- 每天一題(2)--旋轉陣列求最小值陣列
- sql server 2000 一個表的資料插入到三個相關聯表中,一條一條的插入SQLServer
- java中的列舉型別學習Java型別