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

SQL CASE表达式中如何使用OR正确合并多个LIKE判断条件

SQL多LIKE条件合并判断实现方案

原代码语法问题说明

  • LIKE 语法不支持在单个匹配语句后用OR拼接多个模式串,每个模糊匹配规则需要单独对应一个LIKE判断,再通过逻辑OR连接多个判断条件
  • 原语句中END AS country,末尾存在多余逗号,该位置后无其他查询字段,会触发SQL语法解析错误

通用兼容写法(支持所有SQL数据库)

所有主流SQL数据库(MySQL、SQL Server、BigQuery、Hive等)都可以用该写法,逻辑完全匹配需求:

SELECT
  *,
  CASE
    WHEN LOWER(campaign_name) LIKE 'bra_de_%'
      OR LOWER(campaign_name) LIKE '%-de'
      OR LOWER(campaign_name) LIKE 'vid_de_%'
      OR LOWER(campaign_name) LIKE 'de_%'
    THEN 'de'
    ELSE '0'
  END AS country
FROM abc

特定数据库简化写法

如果使用PostgreSQL、Redshift等支持SIMILAR TO正则匹配语法的数据库,可以将多个模式合并为单个判断,写法更简洁:

SELECT
  *,
  CASE
    WHEN LOWER(campaign_name) SIMILAR TO '(bra_de_%|%-de|vid_de_%|de_%)'
    THEN 'de'
    ELSE '0'
  END AS country
FROM abc

注意:如果使用MySQL,可换用REGEXP关键字实现类似合并匹配效果,模式写法参考对应数据库正则规则即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 14:09:25