解析:IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。
IFNULL() 函数语法格式为:
IFNULL(expression, alt_value)
如果第一个参数的表达式 expression 为 NULL,则返回第二个参数的备用值。
参数说明:
参数 | 解析 |
---|---|
expression | 必须,要测试的值 |
alt_value | 必须,expression 表达式为 NULL 时返回的值 |
参数 描述
实例
第一个参数为 NULL:
SELECT IFNULL(NULL, "RUNOOB");
以上实例输出结果为:
RUNOOB
第一个参数不为 NULL:
SELECT IFNULL("Hello", "RUNOOB");
以上实例输出结果为:
Hello
IFNULL(expression-1,expression-2 [,expression-3])
{fn IFNULL(expression-1,expression-2)}
参数
expression-1 - 要计算以确定是否为NULL的表达式。
expression-2 - 如果expression-1为NULL,则返回的表达式。
expression-3 - 可选-如果expression-1不是NULL返回的表达式。 如果没有指定expression-3,则当expression-1不是NULL时返回NULL值。
返回的数据类型描述如下。
描述
支持IFNULL作为SQL通用函数和ODBC标量函数。 请注意,虽然这两个执行非常相似的操作,但它们在功能上是不同的。 SQL通用函数支持三个参数。 ODBC标量函数支持两个参数。 SQL通用函数和ODBC标量函数的双参数形式是不一样的; 当expression-1不为空时,它们返回不同的值。
SQL通用函数计算表达式1是否为NULL。 它永远不会返回expression-1:
如果expression-1为NULL,则返回expression-2。
如果expression-1不为NULL,则返回expression-3。
如果expression-1不为NULL,并且没有expression-3,则返回NULL。
ODBC标量函数计算expression-1是否为NULL。 它要么返回expression-1,要么返回expression-2:
如果expression-1为NULL,则返回expression-2。
如果expression-1不为NULL,则返回expression-1。
返回值数据类型
IFNULL(expression-1,expression-2)
:
返回expression-2的数据类型。 如果expression-2是数值字面值,则字符串字面值或NULL返回数据类型VARCHAR。
IFNULL(expression-1,expression-2,expression-3)
:
如果expression-2和expression-3具有不同的数据类型,则返回数据类型优先级更高(包容性更强)的数据类型。 如果expression-2或expression-3是数值字面值或字符串字面值,则返回数据类型VARCHAR。 如果expression-2或expression-3为NULL,则返回非NULL参数的数据类型。
如果expression-2和expression-3的长度、精度或比例不同,则IFNULL返回两个表达式的更大长度、精度或比例。
{fn IFNULL(expression-1,expression-2)}
:返回expression-1的数据类型。 如果expression-1是数字字面值、字符串字面值或NULL,则返回数据类型VARCHAR。