【发布时间】:2021-05-24 14:57:40
【问题描述】:
所以我尝试使用 case 语句来更新具有许多特定条件的表中的列。我下面的代码应该很明显我的目标是什么,但我收到一条错误消息:
ERROR: Operand of WHEN clause 1 is not the same data type as the CASE operand.
ERROR: Operand of WHEN clause 3 is not the same data type as the CASE operand.
ERROR: Operand of WHEN clause 4 is not the same data type as the CASE operand.
ERROR: Operand of WHEN clause 5 is not the same data type as the CASE operand.
ERROR: Operand of WHEN clause 6 is not the same data type as the CASE operand.
我相信这是因为 or 语句是逻辑而不是字符串,因为它们应该在右侧?代码如下,感谢任何帮助。
update cat_rotn_data
set rotn_ac_typ_cd = case rotn_ac_typ_cd
when '31J' or '320' or '321' or '319' or'32K' or'32M' or'32R' or'3HF' or'3KR' or'3MR' then '320'
when '717' then '717'
when 'M88' or 'M90' or 'M9K' then 'M88'
when '738' or'739' or '73A' or '73E' or '73W' or '73H' or '700' then '73N'
when '332' or '333' or '33X' or '339' or '330' then '330'
when '757' or '75C' or '75D' or '75G' or '75H' or '75P' or '75S' or '75Y' or '76L' or '76P' or '76Q' or '76T' or '76Z' or '75N' or'7ER' then '7ER'
when '777' or '77B' or '7HD' or '7HB' or '7CD' or '7CB' then '777'
else 'ERROR'
end;
【问题讨论】:
-
这能回答你的问题吗? SELECT using 'CASE' in SQL
-
等等,
rotn_ad_typ_cd := '73N'变成'ERROR'而不是'73N'? (或者'73H'和'73N'周围有错字吗?)