Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 можно каким-то образом в where задать доп. условие для конкретного поля ?  [new]
danil_che
Member

Откуда:
Сообщений: 53
у меня запрос из 4 таблиц, и одно поле как оказалось позже ) должно быть ограничено так, что и для него 3 таблицы объеденить придется:
select p1, (select ...from a join b join c where ...) p2
from a join b join c join d where ... --получается большое нагромождение и долго все это)
можно каким-то образом в where задать доп. условие для одного поля
26 фев 08, 11:31    [5336988]     Ответить | Цитировать Сообщить модератору
 Re: можно каким-то образом в where задать доп. условие для конкретного поля ?  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Создать представление?
Или я неправильно понял?
26 фев 08, 11:39    [5337050]     Ответить | Цитировать Сообщить модератору
 Re: можно каким-то образом в where задать доп. условие для конкретного поля ?  [new]
Евгений_25
Member

Откуда: Харьков
Сообщений: 460
danil_che
у меня запрос из 4 таблиц, и одно поле как оказалось позже ) должно быть ограничено так, что и для него 3 таблицы объеденить придется:
select p1, (select ...from a join b join c where ...) p2
from a join b join c join d where ... --получается большое нагромождение и долго все это)
можно каким-то образом в where задать доп. условие для одного поля


покажите запрос
26 фев 08, 11:43    [5337091]     Ответить | Цитировать Сообщить модератору
 Re: можно каким-то образом в where задать доп. условие для конкретного поля ?  [new]
danil_che
Member

Откуда:
Сообщений: 53
нет, не представление ... у меня беда в том, что дважды придется объединять таблицы ( написать лишнее не проблема, жалко, что думать долго будет -- надеюсь что выход есть через какую-нть продуманную заранее для этого или чего-то похожего ф-ю
26 фев 08, 11:43    [5337092]     Ответить | Цитировать Сообщить модератору
 Re: можно каким-то образом в where задать доп. условие для конкретного поля ?  [new]
Madness
Member

Откуда: Москва
Сообщений: 648
danil_che
select p1, (select ...from a join b join c where ...) p2
from a join b join c join d where ... --получается большое нагромождение и долго все это

ну да, скалярные подзапросы - они такие...
и что, нет никакой возможности спустить все это во from / where основного запроса?
26 фев 08, 11:43    [5337093]     Ответить | Цитировать Сообщить модератору
 Re: можно каким-то образом в where задать доп. условие для конкретного поля ?  [new]
Andrey.L
Member

Откуда: Харьков
Сообщений: 1546
Евгений_25
покажите запрос
+1
26 фев 08, 11:48    [5337140]     Ответить | Цитировать Сообщить модератору
 Re: можно каким-то образом в where задать доп. условие для конкретного поля ?  [new]
danil_che
Member

Откуда:
Сообщений: 53
Madness

и что, нет никакой возможности спустить все это во from / where основного запроса?

нет, к сожалению
26 фев 08, 11:48    [5337142]     Ответить | Цитировать Сообщить модератору
 Re: можно каким-то образом в where задать доп. условие для конкретного поля ?  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18351
danil_che
Madness

и что, нет никакой возможности спустить все это во from / where основного запроса?

нет, к сожалению

Почему?
26 фев 08, 11:49    [5337148]     Ответить | Цитировать Сообщить модератору
 Re: можно каким-то образом в where задать доп. условие для конкретного поля ?  [new]
=Tims=
Member [заблокирован]

Откуда:
Сообщений: 91
andrey_anonymous
danil_che
Madness

и что, нет никакой возможности спустить все это во from / where основного запроса?

нет, к сожалению

Почему?

что же ты ему with не советуешь???
а то примеры приводить ты мастер
26 фев 08, 11:52    [5337184]     Ответить | Цитировать Сообщить модератору
 Re: можно каким-то образом в where задать доп. условие для конкретного поля ?  [new]
Евгений_25
Member

Откуда: Харьков
Сообщений: 460
danil_che
select p1, (select ...from a join b join c where ...) p2
from a join b join c join d where ...

ну если выборка будет идти по проиндексированным полям и выбирать одно значение
(select ...from a join b join c where ...) p2
то помоему вполне нормальный вариант, по скорости не потеряет, даже можно
select ...from a join b не использовать а брать уже какое то значение из общего соединения и получить что то типа
(select ...from c where ...) p2
26 фев 08, 12:03    [5337290]     Ответить | Цитировать Сообщить модератору
 Re: можно каким-то образом в where задать доп. условие для конкретного поля ?  [new]
=Tims=
Member [заблокирован]

Откуда:
Сообщений: 91
Евгений_25
danil_che
select p1, (select ...from a join b join c where ...) p2
from a join b join c join d where ...

ну если выборка будет идти по проиндексированным полям и выбирать одно значение
(select ...from a join b join c where ...) p2
то помоему вполне нормальный вариант, по скорости не потеряет, даже можно
select ...from a join b не использовать а брать уже какое то значение из общего соединения и получить что то типа
(select ...from c where ...) p2


в любом случае много не потеряет, т.к. данные будут в кэше
можно попробовать использовать with. Но он не всегда дает желаемое
26 фев 08, 12:13    [5337366]     Ответить | Цитировать Сообщить модератору
 Re: можно каким-то образом в where задать доп. условие для конкретного поля ?  [new]
hell
Member

Откуда:
Сообщений: 3001
=Tims=

в любом случае много не потеряет, т.к. данные будут в кэше
можно попробовать использовать with. Но он не всегда дает желаемое


Зря невозможен генетический бан.
26 фев 08, 12:40    [5337592]     Ответить | Цитировать Сообщить модератору
 Re: можно каким-то образом в where задать доп. условие для конкретного поля ?  [new]
=Tims=
Member [заблокирован]

Откуда:
Сообщений: 91
hell
=Tims=

в любом случае много не потеряет, т.к. данные будут в кэше
можно попробовать использовать with. Но он не всегда дает желаемое


Зря невозможен генетический бан.

опять проявление снобизма?
26 фев 08, 12:59    [5337773]     Ответить | Цитировать Сообщить модератору
 Re: можно каким-то образом в where задать доп. условие для конкретного поля ?  [new]
Andrey.L
Member

Откуда: Харьков
Сообщений: 1546
Зря не привел запрос
select p1, (select ...from a join b join c where ...) p2
from a join b join c join d where ... 
Могу предположить что можно воспользоваться decode, sign ... или case
select p1, decode(sign(a.f1, b.f2), -1,'<', 0,'=', 1,'>') p2
from a join b join c join d where ... 
26 фев 08, 13:11    [5337878]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить