Oracle SQL: Как использовать соединение по уровням на основе условия в операторе выбора? - PullRequest
0 голосов
/ 26 сентября 2019

Я использую Connect by, чтобы сгенерировать список часов между датой / временем, когда пользователь вводит.Однако мне нужно проверить, является ли end_datetime нулевым, потому что мой сгенерированный список часов не будет работать, если он нулевой.Поэтому, если пользователь не вводит дату окончания, я хочу использовать текущий час + 1 в качестве времени окончания.Я застрял.Я знаю, как это сделать, когда есть end_datetime и start_datetime, но как мне справиться, когда end_datetime равен нулю, и использовать текущий час + 1?

SELECT 
  (TRUNC(START_DATETIME,'dd') + (FLOOR(to_char(START_DATETIME,'sssss')/3600)/24) + ((LEVEL - 1)/ 24)) AS DATE_INTERVAL
FROM STORM_REPORTDATE
CONNECT BY LEVEL < ((24 * (TO_DATE(END_DATETIME, 'MM/DD/YYYY HH24:MI:SS') - TO_DATE(START_DATETIME, 'MM/DD/YYYY HH24:MI:SS') ) + 1 ) )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...