您好stacoverflow社区,
我有下表。
m_id s_s s_e a_s_t comm cosk
101 2019-12-23 13:08:49 2019-12-23 13:13:12 NS dt2 p2
101 2019-12-23 13:13:12 2019-12-23 13:14:35 UP dt2 p2
101 2019-12-23 13:14:35 2019-12-23 13:14:56 MS dt4 p4
在a_s_t an为UP的情况下,我想将comm和cosk列设置为null。
我可以在select语句中使用case语句吗?
答案 0 :(得分:2)
您可以使用case
表达式返回此类数据:
select (case when a_s_t <> 'UP' then comm end) as comm,
(case when a_s_t <> 'UP' then cosk end) as cosk,
... -- other columns
from t;
要实际更改数据,您需要使用update
。
答案 1 :(得分:0)
要更新值,您可以执行以下操作:
UPDATE mytable
SET comm = CASE WHEN a_s_t <> 'UP' THEN comm END,
cosk = CASE WHEN a_s_t <> 'UP' THEN cosk END
您无需指定ELSE
条件,因为它将默认为NULL
,这正是您想要的。只需将mytable
更改为表的实际名称即可。