在...中的情况。在选择语句中的位置

问题描述 投票:0回答:2

Hi 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

我想将comm和cosk列设置为null,如果a_s_t an为UP。

我可以在我的select语句中使用case语句吗?

sql oracle
2个回答
1
投票

您可以使用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


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更改为表的实际名称即可。

© www.soinside.com 2019 - 2024. All rights reserved.