Hello, Dmitri!
You wrote  on Thu, 27 Sep 2007 18:47:09 +0400:

 >> select distinct(t.f1) from table1 t order by t.id
 >> в каком порядке будут выданы данные? Вернее я проверил экспериментально,
 >> что не совсем в логичном, в сортировке учитывается последний id для
 >> одинаковых а1.
 DK> как оно этот атрибут возьмет - зависит от того, как на диске
 DK> или в индексе легло.

Вот и говорю, неоднозначно, тобишь как бог на душу положит, ведь - часть такого
поведения убрали, а это осталось...

 DK> про сортировку по столбцу, не входящему в выборку, я уже давно говорил.
 DK> визуально определить порядок сортировки невозможно.

Ну, визуально оно и ладно, главное что бы данные были реально отсортированны.
И в случае обычного сорта по невыбираемому полю это условие выполняется, так
все ок. А вот с дистинктом...

 >> Но Оракл с такими запросами посылает. Или я чего пропустил?
 DK> как именно посылает, интересно.

Очень однозначно :))
http://ora-01791.ora-code.com/

ORA-01791: not a SELECTed expression
Cause:
There is an incorrect ORDER BY item. The query is a SELECT DISTINCT query with 
an ORDER BY clause. In this context, all ORDER BY
items must be constants, SELECT list expressions, or expressions whose operands 
are constants or SELECT list expressions.
Action:
Remove the inappropriate ORDER BY item from the SELECT list and retry the 
statement.

--
-=мы не старые, мы просто много помним=-
With best regards,  Nikolay Ponomarenko


Ответить