所在的位置: mysql >> mysql市场 >> coalesce函数用法sql

coalesce函数用法sql

中科公益爱心 http://www.gpitp.gd.cn/bing/20180828/89480.html

SQL中coalesce函数的用法(也相当于HiveQL中nvl函数的用法),其参数格式如下:COALESCE(expression,value1,value2……,valuen);COALESCE()函数的第一个参数expression为待检测的表达式,而其后的参数个数不定。COALESCE()函数将会返回包括expression在内的所有参数中的第一个非空表达式。如果expression不为空值则返回expression;否则判断value1是否是空值,如果value1不为空值则返回value1;否则判断value2是否是空值,如果value2不为空值则返回value3;……以此类推。

例1:Usethenumberifthereisnonumbergiven.Showteachernameandmobilenumberor

selectname,COALESCE(mobile,)fromteacher

SQL:coalesce()函数,①用途:将空值替换成其他值,返回第一个非空值;②表达式:COALESCE是一个函数,(expression_1,expression_2,……,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。使用COALESCE在于大部分包含空值的表达式最终将返回空值。

扩展资料:

COALESCE()函数可以用来完成几乎所有的空值处理,不过在很多数据库系统中都提供了它的简化版,这些简化版中只接受两个变量,其参数格式如下:

MYSQL:

IFNULL(expression,value)

MSSQLServer:

ISNULL(expression,value)

Oracle:

NVL(expression,value)

这几个函数的功能和COALESCE(expression,value)是等价的。

比如SQL语句用于返回人员的“重要日期”,如果出生日期不为空则将出生日期作为“重要日期”,如果出生日期为空则返回注册日期的值:

MYSQL:

SELECTFBirthDay,FRegDay,

IFNULL(FBirthDay,FRegDay)ASImportDay

FROMT_Person

MSSQLServer:

SELECTFBirthDay,FRegDay,

ISNULL(FBirthDay,FRegDay)ASImportDay

FROMT_Person

Oracle:

SELECTFBirthDay,FRegDay,

NVL(FBirthDay,FRegDay)ASImportDay

FROMT_Person




转载请注明:http://www.aierlanlan.com/rzdk/2746.html

  • 上一篇文章:
  •   
  • 下一篇文章: