条件表达式用于判断数据是否满足特定条件,主要用于 WHERE、HAVING、CASE 等子句中,常见类型如下:
(1) 比较表达式
|
语法 |
含义 |
|
= |
等于。 |
|
<> |
不等于。 |
|
>、<、>=、<= |
大于、小于、大于等于、等于等于 |
|
BETWEEN ... AND ... |
范围判断,包含边界值。 |
|
IN (Value1, Value2, ...) |
集合匹配。 |
|
LIKE |
模糊匹配, %匹配任意字符,_ 匹配单个字符。 |
|
IS NULL 、 IS NOT NULL、=NULL、<>NULL |
NULL判断。 |
(2) 逻辑表达式
|
语法 |
含义 |
|
AND |
逻辑与,所有条件同时满足才为 TRUE。 |
|
OR |
逻辑或,至少一个条件满足即为 TRUE。 |
|
NOT |
逻辑非,反转条件结果。 |
(3) CASE条件表达式
语法:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
举例:
Ø 查询ContactTitle为Owner并且Contact以Mr为开头的记录。
SELECT
CustID,CustName,Contact,ContactTitle,CityCode
FROM
Customer
WHERE
ContactTitle = 'Owner'
AND
Contact like 'Mr%'
Ø 查询CityCode为30101,30201,50101的员工信息。
SELECT
CustID,CustName,Contact,ContactTitle,CityCode
FROM
Customer
WHERE
([30101,30201,50101]).contain(CityCode)
Ø 根据 Bools 字段的取值,将其转换为不同数值后填入 Gender and Marital Status字段。
SELECT
EID, Dept ,
CASE Bools
WHEN 0 THEN 'unmarried man'
WHEN 1 THEN 'married man'
WHEN 2 THEN 'unmarried woman'
ELSE 'married woman'
END
AS "Gender and Marital Status"
FROM
EMPS
知识点:
1) 条件表达式中除了常规的大于,小于,等于等单值判断,还可以使用集算器函数,例如上例中使用contain()
2) 字符串须用单引号括起来。