当前位置:   article > 正文

SQL中COALESCE的使用_sql语句coalesce用法

sql语句coalesce用法
COALESCE
返回其参数中第一个非空表达式。 语法
COALESCE ( expression [ ,...n ] ) 参数
expression 任何类型的表达式。 n 表示可以指定多个表达式的占位符。所有表达式必须是相同类型,或者可以隐性转换为相同的类型。 返回类型
将相同的值作为 expression 返回。 注释
如果所有自变量均为 NULL,则 COALESCE 返回 NULL 值。 COALESCE(expression1,...n) 与此 CASE 函数等价: CASE
WHEN (expression1 IS NOT NULL) THEN expression1
...
WHEN (expressionN IS NOT NULL) THEN expressionN
ELSE NULL


下面给出一示例
01 /****************************************************************
02 ** 在下面的示例中,显示包含三列有关某个雇员每年工资收入信息的#wages表:
03 **hourly_wage、salary 和 commission。但是,每个雇员只能接受一种付款方式。
04 **若要确定支付给所有雇员的工资总额,请使用 COALESCE 函数接受在
05 **hourly_wage、salary 和 commission 中找到的非空值。
06 ****************************************************************/
07 SET NOCOUNT ON
08 GO
09 IF EXISTS ( SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
10 WHERE TABLE_NAME = '#wages')
11 DROP TABLE #wages
12 GO
13 CREATE TABLE #wages
14 (
15 emp_id tinyint identity,
16 hourly_wage decimal NULL,
17 salary decimal NULL,
18 commission decimal NULL,
19 num_sales tinyint NULL
20 )
21 GO
22 INSERT #wages VALUES( 10. 00, NULL, NULL, NULL)
23 INSERT #wages VALUES( 20. 00, NULL, NULL, NULL)
24 INSERT #wages VALUES( 30. 00, NULL, NULL, NULL)
25 INSERT #wages VALUES( 40. 00, NULL, NULL, NULL)
26 INSERT #wages VALUES( NULL, 10000. 00, NULL, NULL)
27 INSERT #wages VALUES( NULL, 20000. 00, NULL, NULL)
28 INSERT #wages VALUES( NULL, 30000. 00, NULL, NULL)
29 INSERT #wages VALUES( NULL, 40000. 00, NULL, NULL)
30 INSERT #wages VALUES( NULL, NULL, 15000, 3)
31 INSERT #wages VALUES( NULL, NULL, 25000, 2)
32 INSERT #wages VALUES( NULL, NULL, 20000, 6)
33 INSERT #wages VALUES( NULL, NULL, 14000, 4)
34 GO
35 SET NOCOUNT OFF
36 GO
37 SELECT * FROM #wages
38 GO
39 SELECT CAST(COALESCE(hourly_wage * 40 * 52,salary,commission * num_sales) AS money) AS 'Total Salary'
40 FROM #wages
41 GO

运行结果
emp_id hourly_wage          salary               commission           num_sales
------ -------------------- -------------------- -------------------- ---------
1      10                   NULL                 NULL                 NULL
2      20                   NULL                 NULL                 NULL
3      30                   NULL                 NULL                 NULL
4      40                   NULL                 NULL                 NULL
5      NULL                 10000                NULL                 NULL
6      NULL                 20000                NULL                 NULL
7      NULL                 30000                NULL                 NULL
8      NULL                 40000                NULL                 NULL
9      NULL                 NULL                 15000                3
10     NULL                 NULL                 25000                2
11     NULL                 NULL                 20000                6
12     NULL                 NULL                 14000                4




(所影响的行数为 12 行)


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



(所影响的行数为 12 行)
 
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/974796
推荐阅读
相关标签
  

闽ICP备14008679号