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

如何根据t.Name匹配结果在SQL WHERE子句中动态添加条件

解决方案

你可以通过逻辑表达式组合实现需求,核心思路是:当t.Name包含"pink"时必须满足时间条件,不包含时时间条件自动失效。用OR和AND的组合就能搞定,不需要复杂的CASE语句。

修改后的WHERE子句如下:

WHERE 
    CAST(t.Date AS date) = 'some date'
    AND t.Location = 'some location'
    AND (
        t.Name NOT LIKE '%pink%'
        OR (t.Name LIKE '%pink%' AND t.Time = 'some condition')
    )

逻辑说明

  • 外层的AND保证原有的日期、地点条件始终生效
  • 括号内的逻辑覆盖两种场景:
    1. 若t.Name不包含"pink",t.Name NOT LIKE '%pink%'为真,整个括号条件直接成立
    2. 若t.Name包含"pink",则必须同时满足t.Time = 'some condition',括号内才会成立

你也可以简化括号内的逻辑,写法更简洁且逻辑完全一致:

WHERE 
    CAST(t.Date AS date) = 'some date'
    AND t.Location = 'some location'
    AND (NOT t.Name LIKE '%pink%' OR t.Time = 'some condition')

内容的提问来源于stack exchange,提问作者Sriram Arunachalam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 15:35:16