Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Return Next, почему / 13 сообщений из 13, страница 1 из 1
24.02.2006, 12:42
    #33563621
Аналитик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Return Next, почему
Доброго времени суток.
Скажите неужели только циклом

FOR var
IN EXECUTE query
return next var;
Loop
End Loop;
return;

можно выводить записи Select, используя
функции.

Может можно как-то сразу и без цикла?
...
Рейтинг: 0 / 0
24.02.2006, 22:59
    #33564319
vfabr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Return Next, почему
а как Вы себе это представляете? и что значит сразу? и куда надо их выводить?
...
Рейтинг: 0 / 0
24.02.2006, 23:51
    #33564348
Аналитик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Return Next, почему
Ну вот например в MS SQL Server, в функции достаточно просто написать запрос SQL любой сложности, без циклов и выполнив функцию можно просто получить набор записей.

А в Постгрес мало того что сначала выполняется Select, выгружая данные в оперативную память, так потом еще циклом проходится по всем выбраным записям.

Я уже молчу если мне нужно будет вывести 1 000 000 000 записей.

Не подумайте, я не в коем случае не критикую Постгрес.

Просто мне интересно может все таки можно решить проблему каким - либо другим способом, т.е. не использовать цикл.
...
Рейтинг: 0 / 0
25.02.2006, 00:50
    #33564376
vfabr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Return Next, почему
АналитикНу вот например в MS SQL Server, в функции достаточно просто написать запрос SQL любой сложности, без циклов и выполнив функцию можно просто получить набор записей.
куда получить? как к ним обращаться?

АналитикЯ уже молчу если мне нужно будет вывести 1 000 000 000 записей.
это никогда никому не понадобится

Вы получаете грубо говоря ссылку на структуру в памяти а луп нужен чтоб по ней пробежаться
...
Рейтинг: 0 / 0
25.02.2006, 01:44
    #33564404
Аналитик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Return Next, почему
Вопрос по прежнему открыт.
Какие еще могут быть варианты вывода записей через функцию?
...
Рейтинг: 0 / 0
25.02.2006, 02:06
    #33564415
vfabr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Return Next, почему
блин как же так можно криво задавать вопросы Анал итик?

http://www.postgresql.org/docs/8.0/interactive/xfunc-sql.html#AEN29570
можно например так

и например можно читать документацию
...
Рейтинг: 0 / 0
25.02.2006, 02:11
    #33564417
vfabr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Return Next, почему
да кстати еще можно вьюхи делать
...
Рейтинг: 0 / 0
25.02.2006, 14:34
    #33564600
Andrey Daeron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Return Next, почему
АналитикДоброго времени суток.
Скажите неужели только циклом

FOR var
IN EXECUTE query
return next var;
Loop
End Loop;
return;

можно выводить записи Select, используя
функции.

Может можно как-то сразу и без цикла?
Еще можно выгнать во временную таблицу. Недавно это тут обсуждалось и вроде как было признано аналогом MS SQL'ных подходов.

http://www.sql.ru/forum/actualthread.aspx?tid=257046&hl=ms+sql
...
Рейтинг: 0 / 0
26.02.2006, 00:29
    #33564915
Аналитик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Return Next, почему
Спасибо.
...
Рейтинг: 0 / 0
26.02.2006, 00:31
    #33564916
Аналитик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Return Next, почему
vfabrблин как же так можно криво задавать вопросы Анал итик?


Вопрс был поставлен корректно. Главное уметь его правильно прочитать.
...
Рейтинг: 0 / 0
26.02.2006, 01:44
    #33564931
vfabr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Return Next, почему
вопрос поставлен по уродски
...
Рейтинг: 0 / 0
26.02.2006, 08:27
    #33565021
ZemA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Return Next, почему
Аналитик пишет:
> Доброго времени суток.
> Скажите неужели только циклом
>
> FOR var
> IN EXECUTE query
> return next var;
> Loop
> End Loop;
> return;
>
> можно выводить записи Select, используя
> функции.
>
> Может можно как-то сразу и без цикла?
> Тема <http://www.sql.ru/forum/actualthread.aspx?tid=265549> Ответить
> <http://www.sql.ru/forum/actualpost.aspx?tid=265549>
>
create table t (v int4 primary key);

insert into t values (1);
insert into t values (2);
insert into t values (3);

create function f()
returns setof t as
'
select * from t;
'
language sql;

select * from f();
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
27.02.2006, 03:21
    #33566604
фффф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Return Next, почему
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Return Next, почему / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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