我一直在这里收到ORA-00905:丢失关键字错误。你能好好看看吗?
任务是用' N / A'替换属性的内容。如果另一个变量等于' R'否则 - 保持该值不变。
以下是我的代码摘录:
SELECT
CASE
WHEN SCHEMA.TABLE.VAR1 = 'R' THEN SCHEMA.TABLE.VAR2 = 'N/A'
ELSE SCHEMA.TABLE.VAR2
END AS NEW_NAME
答案 0 :(得分:1)
如果您打算更改SQL表中的数据,那么您应该在这里使用更新而不是选择:
UPDATE yourTable
SET SCHEMA.TABLE.VAR2 = 'N/A'
WHERE SCHEMA.TABLE.VAR1 = 'R'
如果您需要在此处选择,请使用以下内容:
SELECT
CASE WHEN SCHEMA.TABLE.VAR1 = 'R' THEN 'N/A' ELSE SCHEMA.TABLE.VAR2 END AS NEW_NAME
FROM yourTable
答案 1 :(得分:1)
如果您想要select
,则列别名在 select
之后。 =
子句中不允许then
:
SELECT (CASE WHEN SCHEMA.TABLE.VAR1 = 'R' THEN 'N/A'
ELSE SCHEMA.TABLE.VAR2
END) AS NEW_NAME
注意:您应该使用表别名,因此查询更容易编写和阅读:
SELECT (CASE WHEN t.VAR1 = 'R' THEN 'N/A'
ELSE t.VAR2
END) AS NEW_NAME,
. . .
FROM SCHEMA.TABLE t . ..