Конференция "Базы" » Сортировка [D6, FB2]
 
  • Konrads (29.01.09 11:34) [0]
    Делаю приблизительно такой запрос:

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



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

    Получается что в случае обьединённого запроса в принципе нельзя сделать сортировку по вычисляемому полю?
  • Konrads (29.01.09 11:35) [1]
    пропустил естественно FROM DB
  • Кщд (29.01.09 11:41) [2]
    получается, что надо использовать "запрос из запроса" (FB2.0 разве не поддерживает?), либо сортировать по выражению
  • Konrads (29.01.09 11:46) [3]

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

    сортировать по выражению - это как?
  • Ega23 © (29.01.09 11:47) [4]

    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 (29.01.09 11:54) [5]

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


    Работает, большое спасибо!
  • Johnmen © (29.01.09 11:54) [6]

    > 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 <условия>

  • Виталий Панасенко (29.01.09 12:04) [7]
    ORDER BY 4
  • Anatoly Podgoretsky © (29.01.09 12:10) [8]
    > Konrads  (29.01.2009 11:34:00)  [0]

    Ни о какой сортировке говорить не приходится, по причине ее полного отсутствия в запросе!
  • Johnmen © (29.01.09 12:11) [9]
    Отсутствие явного указания сортировки.
  • Konrads (29.01.09 12:21) [10]

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

    И так тоже работает, спасибо
  • Виталий Панасенко (29.01.09 14:04) [11]

    > Konrads   (29.01.09 12:21) [10]

    Аж странно!..:-)
  • Ega23 © (29.01.09 15:11) [12]

    > ORDER BY 4


    Я бы поостерёгся так делать.
  • Anatoly Podgoretsky © (29.01.09 15:54) [13]
    > Ega23  (29.01.2009 15:11:12)  [12]

    Почему, я бы наоборот, поскольку это по стандарту, а ORDER BY fld является расширением, а ORDER BY func извращением в данном случае
  • Правильный$Вася (29.01.09 15:57) [14]

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

    только из соображений "не забыть бы, когда меняешь число или порядок полей в select"
    в этом случае [6] лучше, хоть там сортировка и неявная (можнои явную туда притулить, чтоб не забыть, что там все-таки должно быть сортированное)
 
Конференция "Базы" » Сортировка [D6, FB2]
Есть новые Нет новых   [134477   +40][b:0][p:0.001]