|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
В легаси системе достался код, который местами меня сбивает с толку. Про order by 1 и т.д. я всегда знал, что так можно задать номер колонки. У меня в коде я встретил order by, в который подставляется строка '0' либо '1', в зависимости от значения, возвращаемого instr, и у меня не получилось найти, что это означает. Или это просто кривоватый код, который не ломается? Что такое в запросе ORDER BY '0' или ORDER BY '1'??? select * from table1 t1, table2 t2, table3 t3, table4 t4 where t1.id=a2.id and a1.acc=a3.id(+) and t1.name = P_NAME and t4.state = t2.status order by DECODE(INSTR(P_TEXT,'~'||a3.VID||'~'),null,0,0,0,1) desc ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 15:22 |
|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
clipper1995, В конкретно этом запросе - числовые значения для возврата первыми строк в тексте которых есть искомое значение. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 15:25 |
|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
clipper1995у меня не получилось найти, что это означает. Сортировка по выражению. Ничем не отличатся от, например, "order by x + y * 2". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 15:29 |
|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
Такой код понятен? Что произойдёт при выполнении? Что будет, если из SELECT убрать строку CASE WHEN ID > 100 THEN 1 ELSE 0 END (но не убирать из ORDER BY)? Код: plsql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 15:30 |
|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
env clipper1995, В конкретно этом запросе - числовые значения для возврата первыми строк в тексте которых есть искомое значение. а в каком поле? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 15:31 |
|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
clipper1995 env clipper1995, В конкретно этом запросе - числовые значения для возврата первыми строк в тексте которых есть искомое значение. а в каком поле? Выражение decode ... в запросе выдаст наружу либо '0' либо '1' ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 15:32 |
|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
clipper1995, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 15:33 |
|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
del ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 15:33 |
|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
clipper1995 Выражение decode ... в запросе выдаст наружу либо '0' либо '1' Выдаст числовое значение 1 или 0 в зависимости от результата instr. Не надо путать с позиционной нотацией. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 15:34 |
|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
env, То есть даже если колонка запрятана внутрь функций, то ORDER BY все равно её увидит? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 15:40 |
|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
env Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
Пожалуй, я не прав. Этот запрос просто не будет работать ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 15:41 |
|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
clipper1995 ORDER BY все равно её увидит? Вы упорно путаете позиционную нотацию, задаваемую парсеру в тексте запроса Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
и сортировку по вычисляемому значению выражения Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 15:45 |
|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
env, Спасибо, понятно. Просто я ошибочно полагал, что сначала вычисляется DECODE, потом результат 0 или 1 'подставляется' в ORDER BY ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 15:48 |
|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
clipper1995 Просто я ошибочно полагал, что сначала вычисляется DECODE, потом результат 0 или 1 'подставляется' в ORDER BY Полезное замечание. Order by 1, order by val - параметры - названия колонок Order by 3/3, order by lower('Val') - параметры - выражения Я недавно читал рекомендации избегать использование order by 1. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 16:08 |
|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
НеофитSQLOrder by 1, order by val - параметры - названия колонок Нет, во втором случае это тоже выражение, возвращающее значение колонки. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 16:23 |
|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Нет, во втором случае это тоже выражение, возвращающее значение колонки. Да и в первом случае это порядковый номер выражения в SELECT-е. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 16:32 |
|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov во втором случае это тоже выражение, возвращающее значение колонки. не факт Тут 3 варианта: expr position c_alias к сожалению, я не очень понимаю, по каким критериам Oracle "последовательность буковок и циферек" которые встретились после ORDER BY относит к одному из трех ((( "c_alias Specify an alias for the column expression. Oracle Database will use this alias in the column heading of the result set. The AS keyword is optional. The alias effectively renames the select list item for the duration of the query. The alias can be used in the order_by_clause but not other clauses in the query" ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 16:33 |
|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov НеофитSQLOrder by 1, order by val - параметры - названия колонок Нет, во втором случае это тоже выражение, возвращающее значение колонки. Ёклмн! Вы только что вырвали с корнем росток моей надежды что в этой области все просто и логично. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 16:49 |
|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
НеофитSQL Dimitry Sibiryakov пропущено... Нет, во втором случае это тоже выражение, возвращающее значение колонки. Ёклмн! Вы только что вырвали с корнем росток моей надежды что в этой области все просто и логично. Э нет, подождите. Код: plsql 1. 2. 3. 4. 5.
не сортирует вторую колонку, а "order by 2" - сортирует. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 16:53 |
|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, Код: plsql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 16:54 |
|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Тут 3 варианта: expr position c_alias к сожалению, я не очень понимаю, по каким критериам Oracle "последовательность буковок и циферек" которые встретились после ORDER BY относит к одному из трех ((( "c_alias Specify an alias for the column expression. Oracle Database will use this alias in the column heading of the result set. The AS keyword is optional. The alias effectively renames the select list item for the duration of the query. The alias can be used in the order_by_clause but not other clauses in the query" Я не могу полагаться на интуитивное понимание, ввиду скромного опыта, но мои эксперименты говорят о следующем: позиция - в формате неотрицательной константы типа NUMBER (3.14 можно, 2f нельзя). Дает ошибку если =0 или больше числа колонок. По смыслу не пересекается с выражением, т.к. сортировка по константе не полезна. алиас - имя колонки запроса, оно синтаксически отличается от выражения или константы, т.к. парсер его знает или оно так обозначено - см пример ниже Все остальное считается выражением. Код: plsql 1. 2. 3. 4. 5.
Я не разбирал, как обрабатываются конфликты имен, когда алиас совпадает с именем функции без параметров. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 17:06 |
|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Тут 3 варианта: expr position c_alias к сожалению, я не очень понимаю, по каким критериам Oracle "последовательность буковок и циферек" которые встретились после ORDER BY относит к одному из трех ((( алиас, выражение - понятно позиия - ето допустимый цифровой порядковый номер в древних версиях, для некошерных селектов position отличная весчь в плюсе для лентяев (для меня) тож неплохо смотрится, мне удобно Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
даж жаль что для group by пока что не сделали по position / alias ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 17:13 |
|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
Stax, Не один же раз разбирали уже почему так. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 17:16 |
|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
НеофитSQL Я не разбирал, как обрабатываются конфликты имен, когда алиас совпадает с именем функции без параметров. На первый взгляд, конфликты с алиасами колонок разрешаются по правилу scope. Местное определение затеняет более широкое. В целом, у параметров ORDER BY пока вижу логичное поведение, кроме возможно дробных позиций колонки. "ORDER BY 1.999" сортирует первую колонку, насколько это будет продолжать работать, неизвестно. Код: plsql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 17:17 |
|
Не смог нагуглить, что такое ORDER BY '0' или ORDER BY '1'
|
|||
---|---|---|---|
#18+
НеофитSQL Я не разбирал, как обрабатываются конфликты имен, когда алиас совпадает с именем функции без параметров Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 17:18 |
|
|
start [/forum/topic.php?fid=52&msg=40006298&tid=1879590]: |
0ms |
get settings: |
25ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
500ms |
get tp. blocked users: |
2ms |
others: | 365ms |
total: | 971ms |
0 / 0 |