Не работает order by :1

Alx65
Дата: 27.11.2009 11:33:36
Столкнулся с ужасом
SELECT client_id,
...
       phone
  FROM vclient3
  where group_id=:gr
  order by :ord
записи по условию where отбирает, но возвращает в неотсортированном порядке.
Если написать
order by 1
(литерал) то сортирует.
Версия 10.2.0.1

Кто-нить сталкивался с таким чудом?
Вячеслав Любомудров
Дата: 27.11.2009 11:37:53
Это и не чудо
Попробуй order by 'a'
Alx65
Дата: 27.11.2009 11:45:48
order by client_id
работает
order by 'client_id'
не работает
Вячеслав Любомудров
Дата: 27.11.2009 11:47:23
Самое время обратиться к описанию синтаксиса в доку
andrey_anonymous
Дата: 27.11.2009 11:48:46
Alx65
order by 'client_id'
не работает

select 'client_id', clent_id from ... 
Так понятнее?
Alx65
Дата: 27.11.2009 11:59:03
Про селект понятно. Вопрос про переменную для order by. Или это невозможно? Типа только подстановка...
Добрый Э - Эх
Дата: 27.11.2009 12:04:56
Alx65
Про селект понятно. Вопрос про переменную для order by. Или это невозможно? Типа только подстановка...
В соседний топик загляни
andrey_anonymous
Дата: 27.11.2009 12:09:11
Alx65
Про селект понятно. Вопрос про переменную для order by. Или это невозможно? Типа только подстановка...

Ну подставите конкретное значение во все строки. Что дальше-то?
Выборка как была неупорядочена так и останется.
Вот так попробуйте:
order by case :var
when '1' then f1
when '2' then f2
end
Alx65
Дата: 27.11.2009 12:20:29
Мысль понятна (выбор в выражении поля основываясь на значении переменной) , спасибо.

Просто в приложении была подстановка, заменил на переменную чтобы уйти отдублирования и уперся.

Всем спасибо.