【问题标题】:How to remove null date data in Teradata 16.20如何在 Teradata 16.20 中删除空日期数据
【发布时间】:2019-11-22 14:25:58
【问题描述】:

我有许多行的日期字段为空。我需要将这些行包含在我的答案集中。我们设法完成的唯一事情是设置“占位符日期”(01-01-1900)并在 Excel 中删除它们。我希望 Teradata 不产生“?”;我想要''的等价物。

这是一个确切的例子: , 案子 当 SOA.Performed_date 为 NULL THEN '' ELSE SOA.Performed_date END AS Sequence_of_Activity

我得到的唯一代码是: , 案子 当 SOA.Performed_date 为 NULL THEN '0001-01-01' ELSE SOA.Performed_date END AS Sequence_of_Activity

这是一个类似的工作示例,同样令人不满意:

, Max(CASE WHEN Care_Activity_Type_ID = 435 
        THEN PERFORMED_DATE 
        ELSE DATE '0001-01-01' 
    end) Annl_Reassess

第一个例子的错误是:Datatype mismatch in expression。

【问题讨论】:

    标签: null teradata


    【解决方案1】:

    事实上,Teradata RDBMS 返回 NULL,而不是 ?。因此,您可以确保在 RDBMS 中传递的不是 NULL(正如 Dieter 上面使用 COALESCE 所写的那样)。

    但在 SQL 助手和 TD Studio 中,您可以更改 NULL 的显示(和导出)方式。也许您希望更改此设置。 :) 在 TD Studio 中,设置 -> Teradata Datatools -> 结果集查看器 -> 数据格式 -> 将 NULL 值显示为:-> >这里是

    【讨论】:

      【解决方案2】:

      如果您想返回 '' 而不是 null,您必须将日期转换为字符串:

      coalesce(to_char(Performed_date, 'yyyy-mm-dd'), '')
      

      顺便说一句,代表 NULL 的 ? 是客户端设置。

      【讨论】:

      • 这很好用。如果有一个有效的日期,它会选择它;否则,它使其为空。迷人的!谢谢!
      猜你喜欢
      • 2018-07-16
      • 1970-01-01
      • 2022-10-15
      • 2016-06-14
      • 2016-02-27
      • 2022-08-19
      • 1970-01-01
      • 2020-09-05
      • 1970-01-01
      相关资源
      最近更新 更多