-
with TAB1 as ( select 1 FLD1, '1' FLD2 from dual union select 2, '2' from dual ) select * from TAB1 0 строк выбрано за 0.0016 секунд
select 1 FLD1, '1' FLD2 from dual
union
select 2, '2' from dual
1 1 2 2
SELECT * FROM v$version; Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production PL/SQL Release 11.2.0.3.0 - Production CORE 11.2.0.3.0 Production TNS for Solaris: Version 11.2.0.3.0 - Production NLSRTL Version 11.2.0.3.0 - Production
-
На 11-м нет возможности проверить. На 9-м у меня работает. И замечание. Вот вместо того union, когда точно известно, что дубликатов в наборах не будет, использовать надо union all
-
Работает и на одиннадцатом.
with tab1 as ( select 0+level from dual connect by level < 3 ) select * from tab1
-
SQL> with TAB1 as
2 (
3 select 1 FLD1, '1' FLD2 from dual
4 union
5 select 2, '2' from dual
6 )
7 select * from TAB1; FLD1 FLD2 ---------- ---- 1 1 2 2 SQL> select banner from v$version; BANNER
--------------------------------------------------------------------------------
Personal Oracle Database 11g Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for 32-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
-
>> Медвежонок Пятачок © (13.02.13 12:32) [2]не-а.. with tab1 as
(
select 0+level
from dual
connect by level < 3
) select * from tab1 0 строк выбрано за 0 секунд > вместо того union, когда точно известно, что дубликатов > в наборах не будет, использовать надо union all
это почему? когда точно известно, что не будет дубликатов, тогда хватит union когда известно, что они могут быть, но не нужны - и тогда хватит union а когда могут быть, и нужны, тогда union all > Игорь Шевченко © (13.02.13 12:34) [3]
Почти одинаково все вообще, печаль.
-
блин, только начал было юзать конструкции сии (with .. select) Буквально два дня назад обновил, на 9ке Oracle и клиенте 10ом, работало
-
у меня все работает. В исходном и в моем вариантах.
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
-
> когда точно известно, что не будет дубликатов, тогда хватит > union
матчасть учить
-
> > когда точно известно, что не будет дубликатов, тогда хватит > > union > > матчасть учить
не понял.
--пусть есть набор select 1 from dual union select 2 from dual union select 3 from dual --дубликатов нет. Получаем 1,2,3
--пусть есть набор select 1 from dual union select 2 from dual union select 1 from dual --дубликаты есть. Они нам НЕ нужны. Получаем 1,2
--пусть есть набор select 1 from dual union select 2 from dual union select 1 from dual --дубликаты есть. Они нам нужны. Получаем 1,2,1
что не так?
-
конечно, так имел ввиду
> --пусть есть набор > select 1 from dual > union all > select 2 from dual > union all > select 1 from dual > --дубликаты есть. Они нам нужны. Получаем 1,2,1
-
думаю, проблема в изначальной постановке. Что бы были дубликаты в полученной, окончательной, выборке - union all, да. НО, было сказано: когда точно известно, что не будет дубликатов сам понимаю это как в исходных наборах, подлежащих к объединению, гарантировано нет дубликатов.
-
ладно, но не в этом дело :) Как этот with заставить заработать то?
-
-
> почитай матчасть, отличия union от union all
не просто почитал, а уже и по лбу получал.
> на металинке уже поискал ?
угу, сейчас смотрю Проблема в локальных настройках, похоже Не пойму в каких только
-
> а уже и по лбу получал
Видимо мало получал.
Если дубликатов точно нет, то зачем нагружать сервер ненужной сортировкой и удалением несуществующих дубликатов?
-
> а уже и по лбу получал
Видимо мало получал.
Если дубликатов точно нет, то зачем нагружать сервер ненужной сортировкой и удалением несуществующих дубликатов?
-
> --пусть есть набор > select 1 from dual > union > select 2 from dual > union > select 3 from dual > --дубликатов нет. Получаем 1,2,3
а чем это отличается от select 1 from dual
union all
select 2 from dual
union all
select 3 from dual знаешь???
-
> знаешь???
да!!! :)
-
> зачем нагружать сервер ненужной сортировкой и удалением > несуществующих дубликатов?
Про дубликаты: не думаю, что он настолько несообразительный, что будет тратить время на это.
про сортировку: да, не знал
Получал же по другой причине, когда схлопнулись дубликаты там, где очень маловероятно они могли бы быть. Поэтому и запомнил это твердо :)
-
> не думаю, что он настолько несообразительный, что будет > тратить время на это
план запроса всё пояснит, сортировка для того и делается
-
похоже что-то намудрил, на своей машинке поставил рядом еще один, подключился - все работает
|