|
Разный порядок для order by и для min
|
|||
---|---|---|---|
#18+
Добрый день, столкнулся со странной ситуацией Есть запрос Код: plsql 1. 2. 3. 4.
в результате его выполнения неожиданно (во всяком случае для меня) получаем MIN(T.C) MAX(T.C) MIN(T.C)KEEP(DENSE_RANKFIRSTOR 0-39 005 005 Если выполнить запрос Код: plsql 1. 2. 3. 4. 5. 6.
То результат будет такой C 005 0-39 Т.е. для order by минимальное значение '005', а для функции min почему-то '0-39' В чем тут может быть дело? Ради интереса выполнил такой же эксперимент под PostgreSQL там минимальное значение '005' что собственно и ожидалось ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 16:11 |
|
Разный порядок для order by и для min
|
|||
---|---|---|---|
#18+
ln123, nls_sort Код: 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.
.... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 16:48 |
|
Разный порядок для order by и для min
|
|||
---|---|---|---|
#18+
Stax, Спасибо, нашел в документации при значении NLS_COMP = BINARY (значение по умолчанию) и ANSI для min и max будет использовано бинарное сравнение, а для order by сравнение выполняется по правилам в NLS_SORT. Довольно странное решение :( ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 17:38 |
|
|
start [/forum/topic.php?fid=52&tid=1881302]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
1ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 116ms |
0 / 0 |