Skip to content

语法

CASE

sql
SELECT product_name,
 	CASE product_type
       WHEN '衣服'
 			   THEN 'A :' || product_type
 			 WHEN '办公用品'
				 THEN 'B :' || product_type
       WHEN '厨房用具'
         THEN 'C :' || product_type
       ELSE NULL
 END AS abc_product_type
FROM Product;

完整版:

sql
SELECT product_name,
 	CASE WHEN product_type = '衣服'
 		  THEN 'A :' || product_type
 		 WHEN product_type = '办公用品'
		  THEN 'B :' || product_type
         WHEN product_type = '厨房用具'
         THEN 'C :' || product_type
       ELSE NULL
 END AS abc_product_type
FROM Product;

完整版的 WHEN 后面是表达式

三值逻辑

除了真与假的第三种逻辑 —— 不确定(UNKNOWN)

与 UNKNOWN 进行预算,最后的结果一定是 UNKNOWN。
所以尽可能不要使用 NULL。

算数运算符

包含 NULL 的运算,结果肯定是 NULL

  • *
  • /

括号() 可以提升 运算表达式 的优先级

比较运算符

  • <
  • =
  • <> 不等于

!= 不是标准 SQL

逻辑运算符

  • AND
  • OR
  • NOT

AND 优先级高于 OR

sql
WHERE product_type = '办公用品'
 AND regist_date = '2009-09-11'
 OR regist_date = '2009-09-20'

-- 会变为

「product_type = '办公用品' AND regist_date = '2009-09-11'
OR
「regist_date = '2009-09-20'