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

Cognos 10中LIKE函数使用问题:如何筛选特定年份的EOM_DATE字段

解决Cognos 10中LIKE函数匹配多个前缀的问题

你遇到的问题其实是Cognos表达式规则的限制:LIKE不能直接接收多个匹配模式,IN也无法和模糊匹配直接结合,STARTS WITH同样只支持单个前缀值。这里给你两种可行的解决方案:

方案一:用OR连接多个LIKE条件

这是最直接的写法,把每个年份前缀的匹配条件用OR串联起来,Cognos完全支持这种逻辑:

[RiskDM2].[ADAV_RISKDATAMART].[EOM_DATE] LIKE '2016%' 
OR [RiskDM2].[ADAV_RISKDATAMART].[EOM_DATE] LIKE '2017%' 
OR [RiskDM2].[ADAV_RISKDATAMART].[EOM_DATE] LIKE '2018%'

方案二:提取年份前缀后用IN匹配

因为你的EOM_DATE格式是固定的YYYY_MM,可以直接提取前4位字符(年份部分),然后用IN来匹配指定年份,这种写法更简洁,性能也更优:

SUBSTRING([RiskDM2].[ADAV_RISKDATAMART].[EOM_DATE], 1, 4) IN ('2016', '2017', '2018')

两种方法都能实现你的需求,如果你后续需要匹配的年份更多,方案二的维护性会更好——只需要在IN的括号里添加或删除年份字符串即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:43:32