【发布时间】:2016-07-11 20:57:01
【问题描述】:
我使用 CASE WHEN 在更新数据之前读取数据(稍后,一旦我选择的 CASE WHEN 功能齐全) 但是,我没有得到正确的结果。
SELECT CASE WHEN INCIDENT_RK = 52080
THEN NULL
ELSE CASE_RK
END AS CASE_RK
FROM [casemgmt4].[ecmdb4].[INCIDENT_LIVE]
Just one record with the same SELECT statement
但是,它将超过 120 行设为 NULL More than 120 records with the same SELECT statement
如果我的代码有错误,谁能告诉我?
【问题讨论】:
-
语法应该是 SELECT CASE INCIDENT_RK WHEN 52080 THEN NULL ELSE CASE_RK END AS CASE_RK
-
如果我使用您的代码,'=' 将带有红色下划线,并显示“'=' 附近的语法不正确”
-
@an33sh - 嗯?在大多数方言中,
CASE有两种变体——其中每个WHEN是一个不同的布尔表达式(如在 OP 中),CASE和第一个WHEN之间没有表达式,还有一个是每个 @ 987654328@ 是一个值表达式,将与在CASE之后计算的单个表达式进行比较。您的更正似乎混合了两种形式。你确定它是正确的? -
@Damien_The_Unbeliever 你指的是我还是an33sh?
-
@B.Dick:这是完整的查询吗,您使用的是连接吗?
CASE_RK可以是null吗?INCIDENT_LIVE是视图吗?如果有,请出示。