coalesce(函数)

2023-02-01 80阅读

温馨提示:这篇文章已超过542天没有更新,请注意相关的内容是否还可用!

coalesce

函数

COALESCE(expression_1,expression_2,...,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。使用COALESCE在于大部分包含空值的表达式最终将返回空值。

中文名coalesce
参数expression
数据库Mysql Oracle
返回类型expression

基本内容

语法

注意:连接操作符“||”是一个值得注意的例外。

例如,空值加任何值都是空值,空值乘任何值也都是空值,依此类推。

参数

expression

任何类型的表达式。

n

表示可以指定多个表达式的占位符。所有表达式必须是相同类型,或者可以隐性转换为相同的类型。

数据库

Mysql

返回类型

将相同的值作为expression返回。

作用

返回表达式中第一个非空表达式,如有以下语句:

SELECT COALESCE(NULL,NULL,3,4,5)FROM dual

其返回结果为:3

注释

如果所有自变量均为NULL,则 COALESCE 返回 NULL 值。

COALESCE(expression1,...n)与此CASE函数等价:

CASE

WHEN(expression1 IS NOT NULL) THEN expression1

...

WHEN(expressionN IS NOT NULL) THEN expressionN

ELSE NULL

编辑本段示例

在下面的示例中,显示包含三列有关某个雇员每年工资收入信息的wages表:hourly_wage、salary和commission。但是,每个雇员只能接受一种付款方式。若要确定支付给所有雇员的工资总额,请使用COALESCE函数接受在hourly_wage、salary和 commission中找到的非空值。

SET NOCOUNT ON

GO

USE master

IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES

WHERE TABLE_NAME = 'wages')

DROP TABLE wages

GO

CREATE TABLE wages

(

emp_id tinyint identity,

hourly_wage decimal NULL,

salary decimal NULL,

commission decimal NULL,

num_sales tinyint NULL

)

GO

INSERT wages VALUES(10.00, NULL, NULL, NULL)

INSERT wages VALUES(20.00, NULL, NULL, NULL)

INSERT wages VALUES(30.00, NULL, NULL, NULL)

INSERT wages VALUES(40.00, NULL, NULL, NULL)

INSERT wages VALUES(NULL, 10000.00, NULL, NULL)

INSERT wages VALUES(NULL, 20000.00, NULL, NULL)

INSERT wages VALUES(NULL, 30000.00, NULL, NULL)

INSERT wages VALUES(NULL, 40000.00, NULL, NULL)

INSERT wages VALUES(NULL, NULL, 15000, 3)

INSERT wages VALUES(NULL, NULL, 25000, 2)

INSERT wages VALUES(NULL, NULL, 20000, 6)

INSERT wages VALUES(NULL, NULL, 14000, 4)

GO

SET NOCOUNT OFF

GO

SELECT CAST(COALESCE(hourly_wage * 40 * 52,

salary,

commission * num_sales) AS money) AS 'Total Salary'

FROM wages

GO

下面是结果集:

Total Salary

------------

20800.0000

41600.0000

62400.0000

83200.0000

10000.0000

20000.0000

30000.0000

40000.0000

45000.0000

50000.0000

120000.0000

56000.0000

编辑本段基本概括

英音:美音:

词典解释

不及物动词vi.

1.联合

2.(挫伤的骨头)接合;(伤口)愈合

网络释义

1.联合,合并,结合

康复网-GRE词汇精选朗读一带词汇表

coalesce v.联合,合并,结合

2.(政党)联合,愈合,接合

商都网|教育|培训|学习资料|课件下载2...

coalesce(政党)联合,愈合,接合

3.结合,联合

07年MBA英语最有效的背单词方法(38)

coalesce v 结合,联合

参考资料

1.coalesce 返回多个值中的非空值·程序园

目录[+]