使用 ORDER BY 子句排序:
– ASC:升序,預設
– DESC:降序
ORDER BY 子句在SELECT 語句結尾,可使用列别名:
1、查找工資在7000-10000之間的數字并去重,升序排序
select distinct salary from employees where salary between 7000 and 10000 order by salary;
<a href="https://s1.51cto.com/wyfs02/M00/8E/44/wKiom1i6m1qjTzYBAABaC62CM7o622.jpg-wh_500x0-wm_3-wmp_4-s_415438235.jpg" target="_blank"></a>
2、查找名字、部門并按照入職日期進行升序
select last_name,department_id,hire_date from employees order by hire_date;
<a href="https://s2.51cto.com/wyfs02/M01/8E/44/wKiom1i6nyjxDGy5AACpAlZfDaQ312.jpg-wh_500x0-wm_3-wmp_4-s_965547573.jpg" target="_blank"></a>
select last_name,department_id,hire_date from employees order by hire_date desc;
<a href="https://s1.51cto.com/wyfs02/M02/8E/42/wKioL1i6n37zNnKoAACrvGHUuP0110.jpg-wh_500x0-wm_3-wmp_4-s_269419881.jpg" target="_blank"></a>
另外一種用法是按照第幾列來排序,下面的例子是用到第三列
select last_name,department_id,hire_date from employees order by 3;
<a href="https://s5.51cto.com/wyfs02/M00/8E/44/wKiom1i6oCTTJzVhAACI8Hd5DXk085.jpg-wh_500x0-wm_3-wmp_4-s_2250996515.jpg" target="_blank"></a>
還有一種用法是按照多列排序,并且按照不同的方式,有個規律按照第一例的政策為先,然後才是第二例。下面的例子是按照department_id 升序為主,然後在按照第二例降序
select last_name, department_id, salary from employees order by department_id, salary desc;
<a href="https://s3.51cto.com/wyfs02/M01/8E/44/wKiom1i6oReCyftZAACp4P0SXzc701.jpg-wh_500x0-wm_3-wmp_4-s_1458556000.jpg" target="_blank"></a>
3、列出有提成員工的姓名,工資和提成,按工資降序排列?
select last_name,salary,commission_pct from employees where commission_pct is not null order by 2 desc ,3 asc;
<a href="https://s4.51cto.com/wyfs02/M02/8E/42/wKioL1i6xFGBPKAvAACVMa7R_Wo330.jpg-wh_500x0-wm_3-wmp_4-s_764681742.jpg" target="_blank"></a>
4、用替代變量,給定名字,查員工 id,工資,例如輸出工資大于10000的員工資訊
select last_name,employee_id,salary from employees where salary > &slary;
<a href="https://s4.51cto.com/wyfs02/M02/8E/42/wKioL1i6xXyiPACVAADGUcyeOBE445.jpg-wh_500x0-wm_3-wmp_4-s_145614717.jpg" target="_blank"></a>
5、指定manager_id 的内容,并按照指定列 last_name 排序
select employee_id,last_name,salary,department_id from employees where manager_id= &mgr_num order by &order_col
<a href="https://s5.51cto.com/wyfs02/M00/8E/45/wKiom1i6xoOCVssXAACuFyPNPN0690.jpg-wh_500x0-wm_3-wmp_4-s_867772374.jpg" target="_blank"></a>
替代變量
使用替代變量:
– 使用&指定變量
– 每次重複使用變量值,如果您不想提示使用者的情況下,請使用&&
使用替代變量,可以替代以下内容:
– WHERE 條件
– ORDER BY 子句
– 清單達式
– 表名
– 整個 SELECT 語句
– 字元和日期替代變量要加單引号如:'first_name'
1、輸出員工id
<a href="https://s1.51cto.com/wyfs02/M02/8E/42/wKioL1i6oo-yGfCQAACcY2x71jA826.jpg-wh_500x0-wm_3-wmp_4-s_188040581.jpg" target="_blank"></a>
2、輸入job_id 為指定内容的員工姓名、部門ID、年薪等資訊
select last_name, department_id, salary*12 from employees where job_id = '&job_title';
<a href="https://s3.51cto.com/wyfs02/M01/8E/44/wKiom1i6rjmRPzntAACS26B5-FQ681.jpg-wh_500x0-wm_3-wmp_4-s_3130512010.jpg" target="_blank"></a>
3、指定列名進行查詢和排序
select employee_id, last_name, job_id, &&column_name from employees order by &column_name ;
<a href="https://s3.51cto.com/wyfs02/M02/8E/44/wKiom1i6r2TCEb3hAAEWrRFl2yQ693.jpg-wh_500x0-wm_3-wmp_4-s_3575968254.jpg" target="_blank"></a>
定義變量
1、使用 DEFINE 指令
---使用DEFINE指令建立和配置設定一個變量的值。
---使用UNDEFINE指令來删除一個變量
DEFINE employee_num = 200
SELECT employee_id, last_name, salary, department_id
FROM employees
WHERE employee_id = &employee_num ;
UNDEFINE employee_num
<a href="https://s4.51cto.com/wyfs02/M01/8E/44/wKiom1i6sOfg671PAABpsSxzK5U378.jpg-wh_500x0-wm_3-wmp_4-s_573694046.jpg" target="_blank"></a>
2、使用 VERIFY 指令
使用 VERIFY 指令來顯示的替代變量之前和之後SQL開發人員
替換替換變量的值:
SET VERIFY ON
SELECT employee_id,last_name,salary
WHERE employee_id = &employee_num;
<a href="https://s4.51cto.com/wyfs02/M01/8E/42/wKioL1i6snHRg-pBAABk3NxKmko970.jpg-wh_500x0-wm_3-wmp_4-s_2524977772.jpg" target="_blank"></a>
本文轉自 yuri_cto 51CTO部落格,原文連結:http://blog.51cto.com/laobaiv1/1903247,如需轉載請自行聯系原作者