【问题标题】:Can you display a column value using CASE您可以使用 CASE 显示列值吗
【发布时间】:2021-02-13 02:52:07
【问题描述】:

我正在从 TABLB1 中选择几列。

一列 (POST_DATE) 仅当 (DB2) 值为“0001-01-01”时,我想显示为“9999-99-99”,否则我希望它显示实际的 DB2 值。

这很好用:

  ,CASE 
       WHEN POST_DATE = '0001-01-01' THEN '9999-99-99' 
   ELSE  'NOT 0001-01-01'  END  AS POSTING_DATE

这不起作用:

  ,CASE 
       WHEN POST_DATE = '0001-01-01' THEN '9999-99-99' 
   ELSE  POST_DATE  END  AS POSTING_DATE

有没有办法在 SPUFI 中做到这一点?

【问题讨论】:

    标签: sql if-statement case


    【解决方案1】:

    CASE 表达式返回单个值——在您的情况下是日期或字符串。如果CASE 两者都返回,则选择一个字符串。

    所以,显式转换:

    (CASE WHEN POST_DATE = '0001-01-01' THEN '9999-99-99' 
          ELSE  CASt(POST_DATE AS VARCHAR(255)
     END) AS POSTING_DATE
    

    您也可以使用有效的日期值代替'9999-99-99'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-06
      • 2017-12-24
      • 2011-02-08
      • 2010-09-24
      • 1970-01-01
      • 1970-01-01
      • 2018-01-30
      相关资源
      最近更新 更多