SQL SERVER 2005 coalesce 的使用

来源:互联网 发布:mac队麦基一号 编辑:程序博客网 时间:2024/05/28 06:04

 

转载:http://blog.csdn.net/ChaoYang0502/archive/2008/08/28/2845105.aspx

 

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

 

   SET NOCOUNT ON
 GO
 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 * FROM #wages
 GO
 SELECT CAST(COALESCE(hourly_wage,salary,commission ,num_sales) AS money) AS 'Total Salary'
 FROM #wages

 GO


drop table  #wages

原创粉丝点击