【问题标题】:Should I use DECODE or CASE in Cognos 10 Report Studio Expressions?我应该在 Cognos 10 Report Studio 表达式中使用 DECODE 还是 CASE?
【发布时间】:2017-01-30 23:17:02
【问题描述】:

我想将存储为 201609 之类的日期,并在 Cognos Report Studio (Cognos 10) 中将 Fall 2016 之类的内容显示为表达式。

我真的只需要检查冬季、春季和秋季的 01、05 和 09 月份。

我检查了 this question 关于 casedecode 的信息,并且我正在将旧的 Cognos7 报告转换为 Cognos 10 Report Studio。我还阅读了在 Select 子句中使用的 case 语句的文档,但我没有看到任何关于如何将其编写为计算列中的表达式甚至单例的示例(很可能用于我正在寻找的东西)。

我将旧技术从 Cognos7 转换为 Cognos 10 Report studio 的方式类似于:

 CONCAT(CONCAT(DECODE(SUBSTR([TermDate],5 ,2),'09','Fall' ,'01','Winter','Spring')
 , ' ') , SUBSTR([TermDate],1 ,4))

我对如何在 Cognos 10 Report Studio 中以更高效、最新的方法执行此操作以及我是否需要在表达式字段中使用 CASE 非常感兴趣。

【问题讨论】:

  • 您可能希望将[this question] 转换为您所指问题的链接:-)
  • SUBSTR([TermDate],..) 是 Oracle 的无效 SQL。 [TermDate] 是不是被 Cognos 取代了?
  • @a_horse_with_no_name 这是一个字段名称。

标签: sql oracle10g cognos-10


【解决方案1】:

又过了几分钟,我意识到我走在了正确的轨道上。这是一个近似的解决方案。

以下表达式可以作为计算列或单例输入到 Cognos 10 Report Studio 中的表达式字段中。

CASE SUBSTR([TermDate],5 ,2) WHEN '09' THEN 'Fall'
WHEN '01' THEN 'Winter'
WHEN '05' THEN 'Spring'
END || ' ' || SUBSTR([TermDate], 1, 4)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-17
    • 2022-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多