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

如何在SQL中复刻Excel IF嵌套SEARCH字符查找判断功能

需求说明

现有存储创意名称的数据集,需要根据名称中的关键词匹配对应资产类型,原逻辑通过Excel嵌套IF实现,规则如下(和ExcelSEARCH函数逻辑一致,不区分大小写、按优先级顺序匹配):

  • 创意名称包含关键词MV时,返回Motion
  • 不满足上一条件、名称包含关键词GIF时,返回GIF
  • 两个关键词均未匹配时,返回0
等价SQL写法

SQL中用CASE WHEN语句即可实现完全一致的顺序判断逻辑:CASE WHEN按书写顺序从上到下匹配,命中第一个符合条件的分支后就会返回对应值,和Excel嵌套IF的执行逻辑完全相同。

通用兼容写法(适配绝大多数数据库)

用全数据库兼容的LIKE模糊匹配实现,注意把示例里的字段名、表名替换成你实际业务里的名称即可:

SELECT
  -- 替换成你需要查询的其他业务字段
  creative_name,
  CASE
    WHEN creative_name LIKE '%MV%' THEN 'Motion'
    WHEN creative_name LIKE '%GIF%' THEN 'GIF'
    ELSE '0'
  END AS asset_detail
FROM your_creative_table;

注意:如果你的数据库配置默认大小写敏感,会导致匹配不到小写的mv/gif,可以先把字段统一转成小写再匹配,比如把判断条件改成WHEN LOWER(creative_name) LIKE '%mv%' THEN 'Motion',即可和Excel的不区分大小写匹配行为完全对齐。

各数据库专属简化写法

如果需要用数据库内置的子串判断函数提升性能,可以参考对应写法:

  • MySQL:WHEN INSTR(creative_name, 'MV') > 0 THEN 'Motion'
  • PostgreSQL:WHEN creative_name ILIKE '%MV%' THEN 'Motion'(ILIKE为PG专属的不区分大小写模糊匹配语法)
  • SQL Server:WHEN CHARINDEX('MV', creative_name) > 0 THEN 'Motion'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:24:23