COALESCE 用法

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

语法
COALESCE ( expression [ ,...n ] ) 

参数
expression

任何类型的表达式。

n

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

返回类型
将相同的值作为 expression 返回。

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

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

CASE
   
WHEN (expression1 IS NOT NULLTHEN expression1
   ...
   
WHEN (expressionN IS NOT NULLTHEN 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.00NULLNULLNULL)
INSERT wages VALUES(20.00NULLNULLNULL)
INSERT wages VALUES(30.00NULLNULLNULL)
INSERT wages VALUES(40.00NULLNULLNULL)
INSERT wages VALUES(NULL10000.00NULLNULL)
INSERT wages VALUES(NULL20000.00NULLNULL)
INSERT wages VALUES(NULL30000.00NULLNULL)
INSERT wages VALUES(NULL40000.00NULLNULL)
INSERT wages VALUES(NULLNULL150003)
INSERT wages VALUES(NULLNULL250002)
INSERT wages VALUES(NULLNULL200006)
INSERT wages VALUES(NULLNULL140004)
GO
SET NOCOUNT OFF
GO
SELECT CAST(COALESCE(hourly_wage * 40 * 52
   salary, 
   commission 
* num_sales) AS moneyAS '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


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值