转载: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
本文通过一个具体的SQL示例介绍了COALESCE函数的作用及其用法,该函数用于返回第一个非空表达式,适用于数据库操作,特别是处理NULL值的情况。
16万+

被折叠的 条评论
为什么被折叠?



