как сделать CASE в дате в оракуле sql - PullRequest
1 голос
/ 05 июня 2019

Как проверить нулевое значение и вернуть как дату в случае нулевого значения.

 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, 

Ответы [ 2 ]

2 голосов
/ 05 июня 2019
CAST((FROM_TZ(CAST(NVL(SRC.End_Date, destination.enddate) AS TIMESTAMP), 'UTC') AT TIME ZONE 'Europe/Belfast') AS DATE) AS END_DATE

будет короче

2 голосов
/ 05 июня 2019

Я думаю, что вы просто пропускаете какой-то паратез:

... AS DATE)

И затем поместите псевдоним столбца после END -ключа оператора case:

...
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,
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...