NetSuite Saved Search字段包含匹配返回指定值公式写法咨询
NetSuite 已保存搜索包含匹配公式实现方案
单匹配规则场景(仅需判断包含XYZ返回123)
优先使用INSTR函数实现,NetSuite 后台对该函数的执行效率优化优于LIKE语法:
CASE WHEN INSTR({field}, 'XYZ') > 0 THEN '123' ELSE '' END
INSTR函数返回匹配字符串的起始位置,返回值大于0即代表字段包含目标字符。
多匹配规则场景(无需堆叠大量CASE WHEN)
如果存在多组「包含关键词A返回结果B」的映射规则,使用REGEXP_SUBSTR + DECODE的组合可以大幅简化公式长度,避免写数十条WHEN分支:
DECODE( REGEXP_SUBSTR({field}, 'XYZ|ABC|DEF', 1, 1, 'i'), 'XYZ', '123', 'ABC', '456', 'DEF', '789', '' )
参数说明
- 正则部分
'XYZ|ABC|DEF'按优先级填入所有需要匹配的关键词,用|分隔,越靠前的关键词匹配优先级越高 - 末尾的
'i'参数代表忽略大小写匹配,需要严格区分大小写时直接删除该参数即可 - 最后一位空字符串
''是无匹配时的默认返回值,可根据需求调整为其他内容
注意事项
- 新建公式字段时,类型必须选择 Formula (Text),否则会触发类型不匹配报错
- 若字段存在空值场景,可在外层嵌套
NVL函数处理空值返回逻辑
内容的提问来源于stack exchange,提问作者newguy2sql
相关产品推荐
相关产品推荐

