我的表有5列。我想
UPDATE Column5='TEACHER' IF Column2='Y'
AND
UPDATE Column5='STUDENT' IF Column3='Y'
我可以在一份声明中这样做吗?
答案 0 :(得分:4)
您可以使用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
子句,并且可能需要调整默认值(ELSE
中的CASE
)的行这两种情况都没有得到满足。