Я в основном пытаюсь написать запрос, где, если событие происходит за последние 200 дней, оно отображает значения столбцов для A, B, C, D, E, F Но в этом же запросе, если событие не происходит в течение последних 200 дней (201 дней & за ее пределами), он будет отображать только значения в столбцах A и B.Заменить ненулевые значения пустым или нулевым значением в SQL oracle SELECT-запрос
Мой текущий запрос я попытался сделать два оператора select с помощью оператора UNION. Я попытался сделать инструкции CASE для столбцов C, D, E и F для SELECT после UNION, но я не мог заставить его работать.
Этот текущий запрос отображает все значения для всех столбцов независимо от того, произошел ли он < или> 200 дней.
SELECT te.columna,
\t c.columnb,
\t te.columnc,
\t v.columnd,
\t v.columne,
\t v.columnf
\t FROM \t table1 te, table2 c, table3 v
\t WHERE te.columng_id=c.columng_id
\t AND v.columne=te.columne
\t AND te.columnc > sysdate-200
\t UNION
\t SELECT te.columna,
\t c.columnb,
\t te.columnc,
\t v.columnd,
\t v.columne,
\t v.columnf
\t FROM \t table1 te, table2 c, table3 v
\t WHERE te.columng_id=c.columng_id
\t AND v.columne=te.columne
\t AND te.columnc < sysdate-200
MySQL или Oracle? Они не то же самое. – Barmar
Oracle, извините. Я новичок во всей работе SQL, поэтому я забываю, какой именно. Я использую SQL Plus для выполнения этого запроса прямо сейчас. – Tootally
Я должен отметить, что с использованием 'te.columnc> sysdate-200' и' te.columnc') вместе с «меньше или равно» ('<=') или «меньше» («<') с «больше или равно» (' > = '). Вы также можете использовать функцию 'TRUNC()' для усечения даты. –