У меня есть две таблицы Redshift со значениями меток времени. У одного из них есть local с некоторыми нулями, а у другого - GMT, но нет нулей. У меня также есть столбец страны в таблице 2.
Я хочу запросить значения местного времени и использовать COALESCE с CASE в зависимости от страны для нулевых значений.
Я пробовал с
CASE
WHEN (T1.local_time = '' OR T1.local_time=NULL) AND T2.country = 'UK' THEN T2.gmt_time
WHEN (T1.local_time = '' OR T1.local_time=NULL) AND T2.country = 'ES' DATEADD(hour, 1, T2.gmt_time)
...
ELSE T2.gmt_time END AS final_time
но он не захватывал нулевые значения. COALESCE (NVL) позволяет мне захватывать значения NULL, но я не уверен, где разместить случай. Я пробовал:
COALESCE (T1.local_time,
CASE
WHEN T2.country = 'UK' THEN DA
WHEN T2.COUNTRY = 'SP' THEN DATEADD(hour, 1, T2.gmt_time)
...
ELSE T2.gmt_time END AS local_time)
AS time_final)
Но я получаю ошибку. Запрос довольно большой, поэтому я хочу избежать временных таблиц. Любое решение?
Заранее спасибо