Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сортировка [D6, FB2]


Konrads ©   (2009-01-29 11:34:00) 

Делаю приблизительно такой запрос:

SELECT A, B, C, A + B AS D
WHERE <условия>
UNION
SELECT A, B, C, A + C AS D
WHERE <условия>


всё вроде работает, но никак нельзя отсортировать по полю D, ошибка invald order by clause

Получается что в случае обьединённого запроса в принципе нельзя сделать сортировку по вычисляемому полю?


Правильный$Вася   (2009-01-29 15:57:00) [1]


> Я бы поостерёгся так делать

только из соображений "не забыть бы, когда меняешь число или порядок полей в select"
в этом случае [6] лучше, хоть там сортировка и неявная (можнои явную туда притулить, чтоб не забыть, что там все-таки должно быть сортированное)


Anatoly Podgoretsky   (2009-01-29 15:54:00) [2]

> Ega23  (29.01.2009 15:11:12)  [12]

Почему, я бы наоборот, поскольку это по стандарту, а ORDER BY fld является расширением, а ORDER BY func извращением в данном случае


Ega23   (2009-01-29 15:11:00) [3]


> ORDER BY 4


Я бы поостерёгся так делать.


Виталий Панасенко   (2009-01-29 14:04:00) [4]


> Konrads   (29.01.09 12:21) [10]

Аж странно!..:-)


Konrads   (2009-01-29 12:21:00) [5]


> Виталий Панасенко   (29.01.09 12:04) [7]

И так тоже работает, спасибо


Johnmen   (2009-01-29 12:11:00) [6]

Отсутствие явного указания сортировки.


Anatoly Podgoretsky   (2009-01-29 12:10:00) [7]

> Konrads  (29.01.2009 11:34:00)  [0]

Ни о какой сортировке говорить не приходится, по причине ее полного отсутствия в запросе!


Виталий Панасенко   (2009-01-29 12:04:00) [8]

ORDER BY 4


Konrads   (2009-01-29 11:54:00) [9]


> Ega23 ©   (29.01.09 11:47) [4]


Работает, большое спасибо!


Johnmen   (2009-01-29 11:54:00) [10]


> Konrads   (29.01.09 11:34) 

SELECT A + B AS D, A, B, C,
WHERE <условия>
UNION
SELECT A + C AS D, A, B, C,
WHERE <условия>


Ega23   (2009-01-29 11:47:00) [11]


Select * from (
SELECT A, B, C, A + B AS D
WHERE <условия>
UNION
SELECT A, B, C, A + C AS D
WHERE <условия>
) as T
Order By T.D


Konrads   (2009-01-29 11:46:00) [12]


> Кщд   (29.01.09 11:41) [2]

сортировать по выражению - это как?


Кщд   (2009-01-29 11:41:00) [13]

получается, что надо использовать "запрос из запроса" (FB2.0 разве не поддерживает?), либо сортировать по выражению


Konrads   (2009-01-29 11:35:00) [14]

пропустил естественно FROM DB


Наверх

Титульная страница Поиск, карта сайта Написать письмо