数据库空值处理函数

数据库空值处理函数

SQL Server

SELECT COALESCE('',0)    结果0 SELECT COALESCE(' ',0)   结果0 SELECT COALESCE(null,0)   结果0 SELECT COALESCE(123,0) 结果123 SELECT ISNULL('',0)      结果'' SELECT ISNULL(null,0)     结果0 SELECT ISNULL(123,0)    结果123 

SQL Server处理空值的函数有两种
- ISNULL() 使用指定的值替换NULL
ISNULL ( check_expression , replacement_value )web

  1. check_expression:将被检查是否为 NULL 的表达式。check_expression 能够为任何类型。sql

  2. replacement_value:当 check_expression 为 NULL 时要返回的表达式。replacement_value 必须是能够隐式转换为 check_expresssion 类型的类型。数据库

  3. 返回值:返回与 check_expression 相同的类型。express

  4. 若是 check_expression 不为 NULL,则返回它的值;不然,在将 replacement_value 隐式转换为 check_expression 的类型(若是这两个类型不一样)后,则返回前者。oracle

    • COALESCE(expression1,expression2,…,expression_n)返回其参数中第一个非空表达式。

等价于CASE语句svg

CASE
WHEN (expression1 IS NOT NULL) THEN expression1
...
WHEN (expressionN IS NOT NULL) THEN expression_n
ELSE NULL
END

oracle

  • NVL()函数与ISNULL()用法类似
    NVL(expression1,expression2)函数

    1. 当expression1为NULL时返回expression2;当expression1不为NULL时返回expression1
  • NVL2()函数
    NVL2(expression1,expression2,expression3)spa

    1. 当expression1不为NULL时返回expression2;当expression1为NULL时返回expression3
  • NULLIF()函数
    NULLIF(expression1,expression2)code

    1. 当expression1=expression2时,返回NULL,expression1<>expression2时,返回expression1
  • COALESCE()函数,用法同上server