如何在oraclesql中使用CASE-in-date
如果为空,如何检查空值并返回为日期如何在oraclesql中使用CASE-in-date,sql,oracle,oracle11g,Sql,Oracle,Oracle11g,如果为空,如何检查空值并返回为日期 CASE WHEN SRC.End_Date is NOT NULL THEN CAST((FROM_TZ(CAST(SRC.End_Date AS TIMESTAMP),'+00:00') AT TIME ZONE 'Europe/Belfast') AS DATE AS END_DATE, //I am getting Syntax error in AS before end_date ELSE CAST((FROM_TZ(CAST(de
CASE WHEN SRC.End_Date is NOT NULL THEN
CAST((FROM_TZ(CAST(SRC.End_Date AS TIMESTAMP),'+00:00') AT TIME ZONE 'Europe/Belfast') AS DATE AS END_DATE, //I am getting Syntax error in AS before end_date
ELSE
CAST((FROM_TZ(CAST(destination.enddate AS TIMESTAMP),'+00:00') AT TIME ZONE 'Europe/Belfast') AS DATE AS END_DATE,
我想你只是错过了一些偏执:
... AS DATE)
然后将列别名放在case语句的END
-关键字后面:
...
END AS END_DATE
总而言之:
CASE WHEN SRC.End_Date is NOT NULL
THEN CAST((FROM_TZ(CAST(SRC.End_Date AS TIMESTAMP),'+00:00') AT TIME ZONE 'Europe/Belfast') AS DATE)
ELSE CAST((FROM_TZ(CAST(destination.enddate AS TIMESTAMP),'+00:00') AT TIME ZONE 'Europe/Belfast') AS DATE)
END AS END_DATE,
我想你只是错过了一些偏执:
... AS DATE)
然后将列别名放在case语句的END
-关键字后面:
...
END AS END_DATE
总而言之:
CASE WHEN SRC.End_Date is NOT NULL
THEN CAST((FROM_TZ(CAST(SRC.End_Date AS TIMESTAMP),'+00:00') AT TIME ZONE 'Europe/Belfast') AS DATE)
ELSE CAST((FROM_TZ(CAST(destination.enddate AS TIMESTAMP),'+00:00') AT TIME ZONE 'Europe/Belfast') AS DATE)
END AS END_DATE,
会更短
将更短错误在于应在关键字
END
之后为整个大小写表达式提供列别名。这已在下面的答案中显示。但是你也可以简化你的表达。CASE
表达式应该只出现在CAST
函数中,因为其他一切都是一样的。@mathguy是的,我看到下面的答案后才注意到。我误解了条件。错误是,列别名应该在关键字END
之后提供给整个大小写表达式。这已在下面的答案中显示。但是你也可以简化你的表达。CASE
表达式应该只出现在CAST
函数中,因为其他一切都是一样的。@mathguy是的,我看到下面的答案后才注意到。我误解了这个条件。它工作得完美无缺,我不知道如何用它来表示日期。非常感谢。它的工作完美无瑕,我不知道如何使用该案件的日期。谢谢。