powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PgSQL: Как сделать лучше?
4 сообщений из 4, страница 1 из 1
PgSQL: Как сделать лучше?
    #32820829
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 строк? Как можно сформировать селект "на лету"?

Заранее благодарен
...
Рейтинг: 0 / 0
PgSQL: Как сделать лучше?
    #32821871
gamych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
PgSQL: Как сделать лучше?
    #32822972
mik_s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если в запросе известна последовательность полей, то сотировку можно передавать просто цифрой. Т.е.:
"select * from mytable order by 2 ".
Нумерация полей для сортировки начинается с единицы.
...
Рейтинг: 0 / 0
PgSQL: Как сделать лучше?
    #32823206
MaximZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или например просто воспользоваться функцией:

EXECUTE command-string;

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


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