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 类型。'