在Cognos中使用IF Then Else结合Days Between函数的问题
解决IF Then Else语句解析错误的方案
错误核心原因:你写的语句中,
then分支返回数值类型(计算出的天数),else分支返回字符串类型('Assigned'),绝大多数查询引擎或计算工具要求同一条件判断语句的所有分支必须返回相同数据类型,类型不匹配就会触发解析错误。两种可行修复方案:
- 统一返回字符串类型,把天数转为文本:
提示:If ([Case State Description] = 'Unassigned') then STR(days_between(CURRENT_DATE,[Case Create Date])) else ('Assigned')STR()是通用的转字符串函数,不同工具可能有语法差异,比如SQL中可用CAST(days_between(CURRENT_DATE,[Case Create Date]) AS VARCHAR),按需替换即可。 - 统一返回数值类型,给已分配状态设置标识值(比如
NULL或0),后续再根据这个值做显示逻辑:If ([Case State Description] = 'Unassigned') then days_between(CURRENT_DATE,[Case Create Date]) else NULL
- 统一返回字符串类型,把天数转为文本:
内容的提问来源于stack exchange,提问作者jeff
相关产品推荐
相关产品推荐

