Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Вложенный запрос / 3 сообщений из 3, страница 1 из 1
28.07.2005, 00:01
    #33188045
bdfy1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вложенный запрос
Есть запрос вида:


select * from ( select case 1 then field > 0 else 0 end as fl from table ) where fl > 0 - т е сам запрос то другой но структура понятна ( т е запрос вида select case 1 then field > 0 else 0 end as fl from table where fl > 0 не рабоатет .. ) - все прекрасно работает но притормаживает - можно ли как то "оптимихировать" такой тип запроса ?
...
Рейтинг: 0 / 0
28.07.2005, 03:36
    #33188111
фффф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вложенный запрос
Структура запроса всё-таки непонятна.
Если решать в лоб - то можно создать функцию, которая вычисление case ... end выполняет и сделать по ней индекс.
...
Рейтинг: 0 / 0
28.07.2005, 11:36
    #33188745
4321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вложенный запрос
сыршенно не ясно, что хотел написать афтр в запросе.
Предположим, примерно следующее
Код: plaintext
1.
2.
select * from 
( select case when id >  0  then  1  else  0  end as fl from test ) foo
 where fl >  0 
тогда это же попросту можно сделать:
Код: plaintext
1.
select case when id >  0  then  1  else  0  end as fl from test 
WHERE (case when id >  0  then  1  else  0  end)> 0 
а чтобы не подтормаживало, можно, как праильно заметил опытный товаристч выше, сделать фунциональный индекс по используемому в WHERE выражению, или написать адекватный этому выражению критерий отбора, использующий уже существующий индекс
(в данном случае - WHERE id > 0 )
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Вложенный запрос / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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