And*_*rew -2 isnull sql-server-2008
我有以下CASE表达式,该ISNULL部分未注册:
CASE WHEN IsNull(2010) THEN 0 END) *
CASE WHEN IsNumeric([Dur_In_Hours]) = 1 THEN
CAST([Dur_In_Hours] AS FLOAT) ELSE 0 END) AS Cost
Run Code Online (Sandbox Code Playgroud)
不幸的是,你使用的IsNull()功能错了.如果您正在测试列是否为null,那么您将使用:
CASE
WHEN 2010 is null
THEN 0
END
*
CASE
WHEN IsNumeric([Dur_In_Hours]) =1
THEN CAST([Dur_In_Hours] AS FLOAT)
ELSE 0
END AS Cost
Run Code Online (Sandbox Code Playgroud)
如果要使用,IsNull()则可以使用IsNull([2010], 0)替换该CASE表达式:
IsNull([2010], 0)
*
CASE
WHEN IsNumeric([Dur_In_Hours]) =1
THEN CAST([Dur_In_Hours] AS FLOAT)
ELSE 0
END AS Cost
Run Code Online (Sandbox Code Playgroud)
或者您可以使用COALESCE替换第一个CASE:
COALESCE([2010], 0)
*
CASE
WHEN IsNumeric([Dur_In_Hours]) =1
THEN CAST([Dur_In_Hours] AS FLOAT)
ELSE 0
END AS Cost
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2266 次 |
| 最近记录: |