mysql 根据另一列的值将列值设置为空

0s0u357o  于 2022-12-17  发布在  Mysql
关注(0)|答案(1)|浏览(162)

我正在准备一个选择查询,如果某个值出现在同一查询的另一个字段中,该查询应该将字段设置为null。

select statement_id, prod_id, description, exp_type, 
        curr_amt as Digital_income, curr_amt as Physical income 
from table1 
where date(created) = 'somedate'

这里,字段exp_type将具有类似"Digital", "Physical", "Download", "Stream"的值。
我克隆curr_amt字段作为数字和物理。大多数时候,两者将有相似的值。
我的要求是,如果exp_type"Physical",我需要curr_amt作为'Digital_income'为null,反之亦然。
有人能帮助我获得所需的输出吗?
我尝试使用CASE、ISNULL和COALESCE,但没有成功

mwg9r5ms

mwg9r5ms1#

使用IF()

select statement_id, prod_id, description, exp_type, 
        IF(exp_type = 'Digital', curr_amt, NULL) as Digital_income, 
        IF(exp_type = 'Physical', curr_amt, NULL) as Physical_income 
from table1 
where date(created) = 'somedate'

DEMO

相关问题