Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Переписать запрос из left join в (+) / 7 сообщений из 7, страница 1 из 1
29.10.2016, 17:37
    #39336972
IgorSm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переписать запрос из left join в (+)
Подскажите, пожалуйста, как переписать подобный запрос
Код: plsql
1.
2.
3.
4.
5.
6.
7.
with a as (select 1 id,TO_DATE('02-02-1923','MM-DD-YYYY')  t1 from dual), 
b as (select 1 id, TO_DATE('02-02-1994','MM-DD-YYYY') t2 from dual)
select a.*, b.t2
from a left join b 
ON  a.id = b.id  
and abs(MONTHS_BETWEEN 
  (a.t1,b.t2)  )<6


Используя Оракловый синтаксис (+).
Нужно подобное условие вставить в старый скрипт , где уже всюду используется (+)
...
Рейтинг: 0 / 0
29.10.2016, 18:08
    #39336991
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переписать запрос из left join в (+)
А зачем тут join вообще?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
select  1 id,
       date '1923-02-02' t1,
       case
         when abs(months_between(date '1923-02-02',date '1924-02-02')) < 6 then date '1924-02-02'
       end t2
 from  dual
/



SY.
...
Рейтинг: 0 / 0
29.10.2016, 18:19
    #39336996
dbms_photoshop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переписать запрос из left join в (+)
IgorSmуже всюду используется (+)А в чем сложность добавить (+) и в этот предикат?
Код: plsql
1.
abs(months_between(a.t1, b.t2(+))) < 6 and a.id = b.id(+)
...
Рейтинг: 0 / 0
29.10.2016, 18:24
    #39336998
IgorSm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переписать запрос из left join в (+)
dbms_photoshop,
Спасибо за помощь, все так просто, что даже стыдно , что так стормозил .
:)
...
Рейтинг: 0 / 0
29.10.2016, 18:25
    #39336999
IgorSm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переписать запрос из left join в (+)
SY,

спасибо
...
Рейтинг: 0 / 0
29.10.2016, 18:44
    #39337005
IgorSm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переписать запрос из left join в (+)
SYА зачем тут join вообще?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
select  1 id,
       date '1923-02-02' t1,
       case
         when abs(months_between(date '1923-02-02',date '1924-02-02')) < 6 then date '1924-02-02'
       end t2
 from  dual
/



SY.
А этот вариант на большом запросе похоже шустрее работает
:)
Еще раз спасибо
...
Рейтинг: 0 / 0
29.10.2016, 19:56
    #39337034
Переписать запрос из left join в (+)
IgorSmгде уже всюду используется (+)передовики!
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Переписать запрос из left join в (+) / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]