我的表格有5列。我想基于2个其他列的更新列Oracle
UPDATE Column5='TEACHER' IF Column2='Y'
AND
UPDATE Column5='STUDENT' IF Column3='Y'
我可以在一个声明中做到这一点吗?
我的表格有5列。我想基于2个其他列的更新列Oracle
UPDATE Column5='TEACHER' IF Column2='Y'
AND
UPDATE Column5='STUDENT' IF Column3='Y'
我可以在一个声明中做到这一点吗?
您或许可以使用CASE
语句。我的猜测是,你想要这样的东西
UPDATE table_name
SET column5 = (CASE WHEN column2 = 'Y'
THEN 'TEACHER'
WHEN column3 = 'Y'
THEN 'STUDENT'
ELSE null
END)
WHERE column2 = 'Y'
OR column3 = 'Y'
我猜你不想更新任何条件都不满足的行。如果要更新每一行,则需要删除WHERE
子句,并且您可能需要调整哪些行都不符合条件的行,以调整默认值(CASE
中的ELSE
)的默认值。
你不需要用你的好代码的ELSE null;) – Parallelis
@Parallelis - 在这种情况下没有必要。如果目标是更新表格中的每一行以显示默认值的位置,我将它包括在内。 –
如果“Column2”和“Column3”都是“Y”,该怎么办? –