Oracle系列三 過濾和排序

WHERE子句spa

  • 使用WHERE 子句,將不知足條件的行過濾掉。

示例:code

SELECT
    employee_id,
    last_name,
    job_id,
     department_id
FROM   
    employees
WHERE  
    department_id = 90 ;

字符和日期blog

  • 字符和日期要包含在單引號中。
  • 字符大小寫敏感,日期格式敏感。

示例:排序

SELECT
    last_name,
    job_id,
    department_id
FROM   
    employees
WHERE  
    last_name = 'Whalen';

 




比較運算table

操做符   含義
= 等於
> 大於
>= 大於等於
< 小於
<= 小於等於
<> 不等於(也能夠是!=)




賦值使用 := 符號

比較運算示例:

ast

SELECT
    last_name,
    salary
FROM  
    employees
WHERE  
    salary <= 3000;


其它比較運算class

操做符                     含義
BETWEEN ...AND...   在兩個值之間 (包含邊界)
IN(set)  等於值列表中的一個
LIKE 模糊查詢
IS NULL 空值






使用 BETWEEN 運算來顯示在一個區間內的值

示例一:date

SELECT
    last_name,
    salary
FROM
    employees
WHERE
    salary BETWEEN 2500 AND 3500;


使用 IN運算顯示列表中的值


im

SELECT
    employee_id,
    last_name,
    salary,
    manager_id
FROM
    employees
WHERE
    manager_id IN (
        100,
        101,
        201
    );

 




LIKEd3

  • 使用 LIKE 運算選擇相似的值
  • 選擇條件能夠包含字符或數字:
  • % 表明零個或多個字符(任意個字符)。
  • _ 表明一個字符。

示例:

SELECT
    first_name
FROM
    employees
WHERE
    first_name LIKE 'S%';



‘%’和‘-’同時使用

示例:

SELECT
    last_name
FROM
    employees
WHERE
    last_name LIKE '_o%';



ESCAPE

  • 能夠使用 ESCAPE 標識符 選擇‘%’和 ‘_’ 符號。
  • 迴避特殊符號的:使用轉義符。例如:將[%]轉爲[\%]、[_]轉爲[\_],而後再加上[ESCAPE ‘\’] 便可。

示例:

SELECT
    job_id
FROM
    jobs
WHERE
    job_id LIKE 'IT\_%' ESCAPE '\';

 



NULL

  • 使用 IS (NOT) NULL 判斷空值。

 

SELECT
    last_name,
    manager_id
FROM
    employees
WHERE
    manager_id IS NULL;




邏輯運算

操做符 含義
AND 邏輯並
OR 邏輯或
NOT 邏輯否




AND

  • AND 要求並的關係爲真。

示例:

SELECT
    employee_id,
    last_name,
    job_id,
    salary
FROM
    employees
WHERE
    salary >= 10000
    AND   job_id LIKE '%MAN%';



OR

  • OR 要求或關係爲真。
SELECT
    employee_id,
    last_name,
    job_id,
    salary
FROM
    employees
WHERE
    salary >= 10000
    OR   job_id LIKE '%MAN%';


NOT

  • NOT 不在這以內

 

SELECT
    last_name,
    job_id
FROM
    employees
WHERE
    job_id NOT IN (
        'IT_PROG',
        'ST_CLERK',
        'SA_REP'
    );


優先級

優先級  名稱 
1 算術運算符
2 鏈接符
3 比較符
4 IS [NOT] NULL, LIKE, [NOT] IN
5 [NOT] BETWEEN
6 NOT
7 AND
8 OR



  • 能夠使用括號改變優先級順序

ORDER BY子句

  • 使用 ORDER BY 子句排序
  • ASC(ascend): 升序
  • DESC(descend): 降序
  • ORDER BY 子句在SELECT語句的結尾。

示例:

SELECT
    last_name,
    job_id,
    department_id,
    hire_date
FROM
    employees
ORDER BY
    hire_date;


降序排列

SELECT
    last_name,
    job_id,
    department_id,
    hire_date
FROM
    employees
ORDER BY
    hire_date DESC;

按別名排序:

SELECT
    employee_id,
    last_name,
    salary * 12 annsal
FROM
    employees
ORDER BY
    annsal;

多個列排序:按照ORDER BY 列表的順序排序。

SELECT
    last_name,
    department_id,
    salary
FROM
    employees
ORDER BY
    department_id,
    salary DESC;

相關文章
相關標籤/搜索