powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как подзапрос выполнять один раз в select в pl/sql
7 сообщений из 7, страница 1 из 1
Как подзапрос выполнять один раз в select в pl/sql
    #40029447
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть запрос в pl/sql

Код: plsql
1.
2.
3.
4.
5.
Select * from potential csp
where inn in (Select distinct inn from potential_fin)
UNION ALL
Select * from potential csp
where inn not in (Select distinct inn from potential_fin)



Как перезаписать запрос чтобы подзапрос Select distinct inn from potential_fin выполнялся один раз или в какую структуру данных нужно записать подзапрос чтобы потом его можно было переиспользовать
...
Рейтинг: 0 / 0
Как подзапрос выполнять один раз в select в pl/sql
    #40029531
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu


Как перезаписать запрос


Hеясно чего предполагалось достичь этим финтом ушами. Если potential_fin.inn NOT NULL - просто выкинуть:

Код: plsql
1.
2.
3.
4.
5.
Select * from potential csp
where inn in (Select distinct inn from potential_fin)
UNION ALL
Select * from potential csp
where inn not in (Select distinct inn from potential_fin)



и использовать:

Код: plsql
1.
select * from potential csp where inn is not null;



SY.
...
Рейтинг: 0 / 0
Как подзапрос выполнять один раз в select в pl/sql
    #40029536
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если potential_fin.inn NULLable, и в potential_fin есть строки где поле inn NULL то:

Код: plsql
1.
2.
Select * from potential csp
where inn not in (Select distinct inn from potential_fin)



ничего не вернет. Так-что расскажи чего ты пытаешься достичь?

SY.
...
Рейтинг: 0 / 0
Как подзапрос выполнять один раз в select в pl/sql
    #40029646
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu
Есть запрос в pl/sql

Код: plsql
1.
2.
3.
4.
5.
Select * from potential csp
where inn in (Select distinct inn from potential_fin)
UNION ALL
Select * from potential csp
where inn not in (Select distinct inn from potential_fin)



Как перезаписать запрос чтобы подзапрос Select distinct inn from potential_fin выполнялся один раз или в какую структуру данных нужно записать подзапрос чтобы потом его можно было переиспользовать


запрос дублирует строки (если я правильно понял)

тогда
Код: plsql
1.
2.
Select csp.* from potential csp,(select 1 from dual union all select 2 from dual) d2 
where inn in (Select distinct inn from potential_fin)



.....
stax
...
Рейтинг: 0 / 0
Как подзапрос выполнять один раз в select в pl/sql
    #40029862
PuM256
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,

Почему дублирует-то? В первой части in, во второй части not in.
...
Рейтинг: 0 / 0
Как подзапрос выполнять один раз в select в pl/sql
    #40029864
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax
запрос дублирует строки

Не дублирует, а потенциально теряет. not in же, а про декларативный not null на поле inn (которого к тому же возможно нет в potential_fin) ничего не сказано
...
Рейтинг: 0 / 0
Как подзапрос выполнять один раз в select в pl/sql
    #40029877
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PuM256
Stax,

Почему дублирует-то? В первой части in, во второй части not in.


Звиняйте, пропустил/не увидел not


in UNION ALL not_in нюансы будут токо с null

.....
stax
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как подзапрос выполнять один раз в select в pl/sql
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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