Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Firebird, Interbase > FireBird 2.0 сделать сортировку после того


Автор: Delphist 2.8.2007, 11:42
Скажите, пожалуйста, как в select-запросе (Firebird 2.0) сделать сортировку по-какому либо полю, после того, как отработает select.
Т.е. 
Код

select rd.raw_id, rd.raw_group_id,
iif(rd.raw_id > 0, 2, rg.sequence_id) sequence_id,
rd.raw_name
from recipes r
 join rcp_contents rc on rc.rcp_id=r.rcp_id
 join raw_dict rd on rd.raw_id=rc.raw_id
 left join raw_groups rg on rg.raw_group_id=rd.raw_group_id
where r.rcp_id=943
order by rg.sequence_id

В данном sql-запросе сортировка выполнится след. образом:
упорядачатся sequence_id именно по тем значениям, которые есть в таблице raw_groups (
т.е. iif(rd.raw_id > 0, 2, rg.sequence_id) sequence_id эта строка не учитывается) в связи с этим нарушится положение rc.raw_id т.е. они уже будут выводится не так как их ввел ранее пользователь

Вопрос такой как заставит sql-запрос сначала выполнится, а потом уже сделать сортировку. Вроде как новая функция PLAN это умеет но я не понял как ей пользоваться.

Автор: jsa 2.8.2007, 11:48
Код

select * from (
 select rd.raw_id, rd.raw_group_id,
iif(rd.raw_id > 0, 2, rg.sequence_id) sequence_id,
rd.raw_name
from recipes r
 join rcp_contents rc on rc.rcp_id=r.rcp_id
 join raw_dict rd on rd.raw_id=rc.raw_id
 left join raw_groups rg on rg.raw_group_id=rd.raw_group_id
where r.rcp_id=943
)
order by <field_name>

попробуй

Автор: Delphist 2.8.2007, 12:06
То же самое. Вообщев выход нашел теперь в order by стоит так:
order by sequence_id, rc.row_id

Автор: SaschaL 13.9.2007, 09:28
Доброго времени суток!
Попробуй метод 
Цитата

Order by <Name>

 причем в качестве имени столца можно использовать несколько имен столбцов, разделенных при этом знанаком "," 
Например:
quote]
Order by id, Name
[/quote]
При этом при выполнении сортировки первая сортировка будет выполнена по полю id затем в рамках первой сортировки производится вторая сортировка по полю name
Надесь что все понятно! Удачи

Автор: Akella 18.9.2007, 11:53
а если сделать представление или хранимку, а из них уже выбирать и эту выборку сортировать

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)