У меня есть столбец с типом данных varchar2 (4000).Тем не менее, этот столбец имеет следующий тип значений '//' '112/01/01', этот столбец является столбцом даты
Я хотел бы получить следующий вывод - IF '//', затем установить его NULL IF'112/01/01', затем установите его как 2012/01/01
У меня возникла проблема, когда я использую оператор case / decode / iif и установил значение как NULL.
Iпопробовал следующий оператор SQL, и он дает мне либо ошибку ORA-00932, либо ошибку Ora-01841.
Вот мои утверждения:
SELECT
CASE WHEN DATE_CATALOG_SENT = '//' THEN to_date('1950/01/01'), 'yyyy/mm/dd')
ELSE TO_DATE(substr(DATE_CATALOG_SENT, 2, LENGTH(DATE_CATALOG_SENT)),'yyyy/mm/dd')
END AS abcd
FROM
DUAL;
SELECT CASE WHEN DATE_CATALOG_SENT = 0 THEN 'NULL'
ELSE TO_DATE(substr(DATE_CATALOG_SENT, 2, LENGTH(DATE_CATALOG_SENT)),'yy/mm/dd')
END
FROM DUAL;
Есть ли способ исправить эту проблему с помощью SQLтолько запрос, а не PL / SQL?
Спасибо AD