SQL中,COALESCE()函数的示例

先看看帮助文档的介绍。

返回其参数中的第一个非空表达式。

语法

COALESCE ( expression [ ,...n ] )

参数

expression 任意数据类型的表达式。

n 占位符,指示可以指定多个表达式。

所有表达式必须属于同一类型或者能够隐式转换为同一类型。

返回值

返回 expression 类型集内优先级最高的类型。

假如有下表:

MBA01产品系列

Table表里内容:

MBA01Id int, --产品ID号,一般为标识类型(自身累加)

MBA01AId tinyint NULL, --产品/品牌

MBA01名称 nvarchar(100) NULL, --产品名称

MBA01描述 nvarchar(400) NULL, --产品描述

MBA01PId int NULL --产品父品牌ID

SQL语句示例:

一:

UPDATE MBA01产品系列

SET MBA01描述 = COALESCE ('这是我的SQL测试1', '这是我的SQL测试2','这是我的SQL测试3')

WHERE MBA01名称 = '我的测试'

结果:

select * from MBA01产品系列 where MBA01名称 = '我的测试'

可以查看到:

MBA01描述 = '这是我的SQL测试1'


二:

UPDATE MBA01产品系列

SET MBA01描述 = COALESCE (NULL, '这是我的SQL测试2','这是我的SQL测试3')

WHERE MBA01名称 = '我的测试'

结果:

select * from MBA01产品系列 where MBA01名称 = '我的测试'

可以查看到:

MBA01描述 = '这是我的SQL测试2'


三:

UPDATE MBA01产品系列

SET MBA01描述 = COALESCE (NULL, NULL,'这是我的SQL测试3')

WHERE MBA01名称 = '我的测试'

结果:

select * from MBA01产品系列 where MBA01名称 = '我的测试'

可以查看到:

MBA01描述 = '这是我的SQL测试3'


四:

UPDATE MBA01产品系列

SET MBA01描述 = COALESCE (NULL, NULL,'')

WHERE MBA01名称 = '我的测试'

结果:

select * from MBA01产品系列 where MBA01名称 = '我的测试'

可以查看到:

MBA01描述 = ''

五:

(如果COALESCE函数里的参数全为NULL就会出错了,因为COALESCE函数的功能其实就是为了避免出现不想要的NULL值)

UPDATE MBA01产品系列 SET MBA01描述 = COALESCE (NULL, NULL,NULL)

WHERE MBA01名称 = '我的测试'

结果:

SQL系统提示:

'COALESCE 至少应有一个参数为 NULL 类型。'