我的表格有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」,該怎麼辦? –