You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于另一列值将指定列设为NULL的SQL查询实现

解决方案

你可以通过CASE表达式精准实现这个逻辑,以下是修正后的查询语句:

select 
    statement_id, 
    prod_id, 
    description, 
    exp_type, 
    -- 当exp_type为Physical时,Digital_income设为NULL,否则取curr_amt
    CASE WHEN exp_type = 'Physical' THEN NULL ELSE curr_amt END AS Digital_income,
    -- 当exp_type为Digital时,Physical income设为NULL,否则取curr_amt(带空格的别名用反引号包裹适配MySQL;SQL Server用[],Oracle用"")
    CASE WHEN exp_type = 'Digital' THEN NULL ELSE curr_amt END AS `Physical income`
from table1 
where date(created) = 'somedate'

关键说明:

  • 针对Digital_income:判断exp_type是否为'Physical',是则返回NULL,否则返回curr_amt
  • 针对Physical income:判断exp_type是否为'Digital',是则返回NULL,否则返回curr_amt
  • 带空格的字段别名需要用对应数据库的符号包裹,避免语法错误

内容的提问来源于stack exchange,提问作者Subramanian V

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 18:20:34