我有许多行的日期字段为空。 我需要将这些行包含在我的答案集中。我们唯一设法完成的事情是设置一个"占位符日期"(01-01-1900(并在Excel中删除它们。我希望 Teradata 不让出"?";我想要等效的"。
下面是一个确切的示例: 箱 当SOA。Performed_date为空,则为" 否则。Performed_date 结尾为Sequence_of_Activities
我唯一可以使用的代码是: 箱 当SOA。Performed_date为空,则为"0001-01-01" 否则。Performed_date 结尾为Sequence_of_Activities
这是一个类似的工作示例,同样不令人满意:
, Max(CASE WHEN Care_Activity_Type_ID = 435
THEN PERFORMED_DATE
ELSE DATE '0001-01-01'
end) Annl_Reassess
第一个示例的错误是:表达式中的数据类型不匹配。
如果要返回''
而不是null,则必须将日期转换为字符串:
coalesce(to_char(Performed_date, 'yyyy-mm-dd'), '')
顺便说一句,表示 NULL 的?
是客户端设置。
Teradata RDBMS 返回的是 NULL,而不是 ?。因此,您可以在RDBMS中确保传递的不是NULL(正如Dieter上面使用COALESCE所写的那样(。
但在SQL Assistant & TD Studio中,您可以更改NULL的显示(和导出(方式。也许您希望更改此设置。:)在TD工作室中,它的设置->Teradata数据工具->结果集查看器->数据格式->将空值显示为:->>你来了<</p>