0
我有出现如下一个简单的表更新:使用情况下没有设置
+--------+-------+----------+
| client | value | status |
+--------+-------+----------+
| A | A1 | positive |
| B | B2 | neutral |
| C | C3 | negative |
| D | B2 | neutral |
| E | A1 | positive |
+--------+-------+----------+
状态字段直接关系到值字段,但值字段会自动更改,所以我使用select声明显示其状态字段需要更新如下:
SELECT client, value, status,
CASE value
WHEN A1 THEN postive
WHEN B2 THEN neutral
ELSE negative
END AS new_status
FROM table
WHERE status <> CASE value
WHEN A1 THEN postive
WHEN B2 THEN neutral
ELSE negative
END
这工作得很好,但我从来不喜欢完全相同的CASE如何同时出现在SELECT和WHERE子句。有没有更好的方式来编写这个SELECT来只显示哪些状态字段需要更新?
您可以使用派生表。 –