NULLIF 函数
功能?
通过比较表达式提供缩写的 CASE 表达式。
语法?
NULLIF?(?expression-1,?expression-2?)
参数?
expression-1????要比较的表达式。
expression-2????要比较的表达式。
用法?
NULLIF 比较两个表达式的值。
如果第一个表达式的值与第二个表达式的值相等,NULLIF 返回 NULL。
如果第一个表达式的值不等于第二个表达式的值,或者第二个表达式为 NULL,则 NULLIF 返回第一个表达式。
NULLIF 函数提供了编写某些 CASE 表达式的简便方法。
标准和兼容性?
-
SQL/92????初级特性。
-
SQL/99????核心特性。
示例?
下面的语句返回值 a:
SELECT NULLIF( 'a', 'b' )
下面的语句返回 NULL。
SELECT NULLIF( 'a', 'a' )
---------------------------------------------------------------
CASE 表达式
CASE 表达式提供条件 SQL 表达式。Case 表达式可以在能够使用表达式的任何地方使用。
CASE 表达式的语法如下:
CASE?expression
WHEN?expression
THEN?expression,?...
[?ELSE?expression?]
END
如果 CASE 语句后的表达式等于 WHEN 语句后的表达式,则返回 THEN 语句后的表达式。否则,返回 ELSE 语句后的表达式(如果它存在)。
例如,以下代码用 CASE 表达式作为 SELECT 语句的第二子句。
SELECT id,
( CASE name
WHEN 'Tee Shirt' then 'Shirt'
WHEN 'Sweatshirt' then 'Shirt'
WHEN 'Baseball Cap' then 'Hat'
ELSE 'Unknown'
END ) as Type
FROM "DBA".Product
可以替换的语法如下:
CASE
WHEN?search-condition
THEN?expression,?...
[?ELSE?expression?]
END
如果满足 WHEN 语句后的搜索条件,则返回 THEN 语句后的表达式。否则,返回 ELSE 语句后的表达式(如果它存在)。
例如,以下语句用 CASE 表达式作为 SELECT 语句的第三子句,以将字符串与搜索条件相关联。
SELECT id, name,
( CASE
WHEN name='Tee Shirt' then 'Sale'
WHEN quantity >= 50 then 'Big Sale'
ELSE 'Regular price'
FROM "DBA".Product
用于简写 CASE 表达式的 NULLIF 函数?
NULLIF 函数提供了一种以短格式写出某些 CASE 语句的方法。NULLIF 语法如下: