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

Cognos中CONTAINS语句实现字符串匹配返回指定值的写法咨询

Cognos 子串匹配计算表达式实现方案

问题原因

之前编写的表达式无法生效,核心是缺少Cognos要求的完整条件判断语法结构,不能直接罗列条件 then 返回值的片段,必须套入标准的IF或CASE判断框架才能正常解析。Cognos原生的contains函数本身就支持匹配字符串任意位置的子串,带空格的场景(如freedom bell、apple fritter)不需要额外加通配符就能正常命中。

正确写法

方案1:IF语句实现(逻辑直观,推荐使用)

IF ([description] contains 'apple')
THEN ('A')
ELSE IF ([description] contains 'bell')
THEN ('B')
ELSE ('null')

方案2:CASE语句实现(效果与IF写法完全一致)

CASE
WHEN [description] contains 'apple' THEN 'A'
WHEN [description] contains 'bell' THEN 'B'
ELSE 'null'
END

匹配效果验证

对照给出的测试值,两种写法都能返回符合预期的结果:

  • 对applebee、appletart、apple fritter这类任意位置包含apple的字段值,返回"A"
  • 对bellview、bellmont、freedom bell这类任意位置包含bell的字段值,返回"B"
  • 对bird、coffin这类两个子串都不包含的字段值,返回"null"

注意:如果存在字段值同时包含apple和bell的特殊场景(如apple bell),上述写法会按判断顺序优先返回"A",如果需要优先返回"B",调换两个判断条件的先后顺序即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 21:31:11