Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 query  [new]
Гнуздянин
Guest
Соратники, а кто-нибудь может объяснить почему так можно
SELECT A.OBJ_NAME
      ,A.ACTION_NAME
      ,TO_CHAR(A.TIMESTAMP, 'DD.MM.YY HH24:MI')
FROM SYS.DBA_AUDIT_TRAIL A
ORDER BY A.TIMESTAMP

и так можно
SELECT DISTINCT
       A.OBJ_NAME
      ,A.ACTION_NAME
      ,A.TIMESTAMP
FROM SYS.DBA_AUDIT_TRAIL A
ORDER BY A.TIMESTAMP

а так нельзя
SELECT DISTINCT
       A.OBJ_NAME
      ,A.ACTION_NAME
      ,TO_CHAR(A.TIMESTAMP, 'DD.MM.YY HH24:MI')
FROM SYS.DBA_AUDIT_TRAIL A
ORDER BY A.TIMESTAMP

???
25 дек 15, 17:45    [18610713]     Ответить | Цитировать Сообщить модератору
 Re: query  [new]
Takurava
Member

Откуда:
Сообщений: 1776
Гнуздянин,

Очередной выпуск передачи "Где логика?" ?
Угадай лишнюю картинку?
25 дек 15, 17:49    [18610722]     Ответить | Цитировать Сообщить модератору
 Re: query  [new]
Гнуздянин
Guest
Takurava, о да вы сноб и эстет, а также, вероятно, ещё и профессионал? Потрудитесь же пояснить. :)
25 дек 15, 17:59    [18610776]     Ответить | Цитировать Сообщить модератору
 Re: query  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5151
Гнуздянин
Соратники, а кто-нибудь может объяснить почему так можно
Потому что читай про order by кляузу

И у знаешь еще про
select a.obj_name, a.action_name, to_char(a.timestamp, 'DD.MM.YY HH24:MI')
  from sys.dba_audit_trail a
 order by 3

И про
select a.obj_name, a.action_name, to_char(a.timestamp, 'DD.MM.YY HH24:MI') x
  from sys.dba_audit_trail a
 order by x

И даже
select a.obj_name, a.action_name, to_char(a.timestamp)
  from sys.dba_audit_trail a
 order by "TO_CHAR(A.TIMESTAMP)"

Если просветление не наступит - смотри final query в трассе 10053.

И вот тут еще можно почитать - Oracle vs MSSQL. Битва интеллекта.
25 дек 15, 18:02    [18610790]     Ответить | Цитировать Сообщить модератору
 Re: query  [new]
Гнуздянин
Guest
Сердешно благодарю! Море инфы в одном посте.
Так бы сразу, а то как в СИЗО порядки стали на SQL.RU :)
25 дек 15, 18:09    [18610818]     Ответить | Цитировать Сообщить модератору
 Re: query  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5151
Гнуздянин,

Какой бы ни был извращенный текст выражения, если он не превышает длину идентификатора - все будет гуд.
SQL> select sin(0 /*+HELLO*/) from dual order by "SIN(0/*+HELLO*/)";

SIN(0/*+HELLO*/)
----------------
               0

SQL> select to_char(systimestamp, 'YYYY') from dual order by "TO_CHAR(SYSTIMESTAMP,'YYYY')";

TO_C
----
2015
25 дек 15, 18:14    [18610828]     Ответить | Цитировать Сообщить модератору
 Re: query  [new]
Jebrail
Member

Откуда: Тбилиси
Сообщений: 328
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.
25 дек 15, 18:16    [18610836]     Ответить | Цитировать Сообщить модератору
 Re: query  [new]
Гнуздянин
Guest
[u][b]Merry Christmas![/b][/u]
25 дек 15, 18:18    [18610846]     Ответить | Цитировать Сообщить модератору
 Re: query  [new]
Elic
Member

Откуда:
Сообщений: 29990
dbms_photoshop
Какой бы ни был извращенный текст выражения, если он не превышает длину идентификатора - все будет гуд.
Реклама принципа "что вижу - то пою" - совсем не хорошо.
25 дек 15, 20:17    [18611319]     Ответить | Цитировать Сообщить модератору
 Re: query  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5151
Elic,

Было написано, для того, чтоб учтонить как работает подход с "" хоть в случае ТС он и не взлетит.
Если кто-то видит какую-то рекламу где ее нет - это его личные проблемы.
25 дек 15, 21:39    [18611581]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить