Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PgSQL: Как сделать лучше? / 4 сообщений из 4, страница 1 из 1
09.12.2004, 14:16
    #32820829
blackrook
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PgSQL: Как сделать лучше?
Есть функция в которой порядок сортировки задаётся в качестве аргумента:

автор
declare
orderby alias for $1;
t public.service%ROWTYPE;

begin

if orderby=1 then
for t in select * from public.service order by id loop
.....
end loop;
end if;

if orderby=1 then
for t in select * from public.service order by date loop
.....
end loop;
end if;

end;


Вопрос: как сократить количество почти одинаковых блоков if которых тут больше 20-ти и в каждой 11 строк? Как можно сформировать селект "на лету"?

Заранее благодарен
...
Рейтинг: 0 / 0
09.12.2004, 19:15
    #32821871
gamych
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PgSQL: Как сделать лучше?
blackrookЕсть функция в которой порядок сортировки задаётся в качестве аргумента:

автор
declare
orderby alias for $1;
t public.service%ROWTYPE;

begin

if orderby=1 then
for t in select * from public.service order by id loop
.....
end loop;
end if;

if orderby=1 then
for t in select * from public.service order by date loop
.....
end loop;
end if;

end;


Вопрос: как сократить количество почти одинаковых блоков if которых тут больше 20-ти и в каждой 11 строк? Как можно сформировать селект "на лету"?

Заранее благодарен

Записываешь запрос в переменную типа text. Затем выполняешь:
for t in execute query loop
...
end loop;
...
Рейтинг: 0 / 0
10.12.2004, 12:50
    #32822972
mik_s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PgSQL: Как сделать лучше?
Если в запросе известна последовательность полей, то сотировку можно передавать просто цифрой. Т.е.:
"select * from mytable order by 2 ".
Нумерация полей для сортировки начинается с единицы.
...
Рейтинг: 0 / 0
10.12.2004, 13:59
    #32823206
MaximZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PgSQL: Как сделать лучше?
или например просто воспользоваться функцией:

EXECUTE command-string;

про нее можно почитать в документации.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PgSQL: Как сделать лучше? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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