Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)  [new]
exp98
Member

Откуда:
Сообщений: 2698
Версия SQL Developer
Versioning 4.2.0.17.089.1709
Build 17.089.1709

Ясно, как должно быть, и есть подозрение, что можно подрегулировать числовыми или региональными настройками на время выполнения запроса.
select 'V. я' as n  from dual union all
    select 'VI.I я' as n  from dual union all
    select 'VI.II я' as n  from dual union all
    select 'VII. я'as n from dual union all
    select 'VIII. я' as n  from dual 
order by n
----------ответ
V. я
VI.I я
VII. я
VI.II я
VIII. я
Причём в реальном запросе (там в сортировке этот столбец второй) - и там 7-ка вообще раньше 6-ки
В ТОАДе всё ОК, и в нём удобнее, но у меня сейчас к Девелоперу доступ проще.

Не хочется тащить order_index в конечный резалт, что можно подрегулировать ?
9 ноя 17, 17:02    [20940812]     Ответить | Цитировать Сообщить модератору
 Re: SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7125
exp98,
в oracle нет встроенного типа римские числа, поэтому идет сортировка как строк
порядок сортировки символов строк регулируется параметром
NLS_SORT, который, если явно не установлен, зависит от настройки NLS_TERRITORY
toad использует настройки Oracle Client, SQL*Developer настройки java, которая тянет эти настроки из системы.

автор
Причём в реальном запросе (там в сортировке этот столбец второй) - и там 7-ка вообще раньше 6-ки
В ТОАДе всё ОК, и в нём удобнее, но у меня сейчас к Девелоперу доступ проще.


не верю, покажи результат, бо здесь используется банальный ASCII7, и разницы сортировки быть не должно
9 ноя 17, 17:41    [20940963]     Ответить | Цитировать Сообщить модератору
 Re: SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)  [new]
Elic
Member

Откуда:
Сообщений: 29976
Тебе только кажется, что это числа. А предположение о "сортируемости" римского числа как строки выдаёт владение счётом на уровне первого класса.
9 ноя 17, 17:45    [20940975]     Ответить | Цитировать Сообщить модератору
 Re: SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
exp98,

попробуйте тынц допилить до желаемого
9 ноя 17, 17:52    [20940992]     Ответить | Цитировать Сообщить модератору
 Re: SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)  [new]
AmKad
Member

Откуда:
Сообщений: 5222
+ NLSSORT c union all без inline view не работает?
column n format a30

with s as (
select 'v. я' as n  from dual union all
    select 'vi.i я' as n  from dual union all
    select 'vi.ii я' as n  from dual union all
    select 'vii. я'as n from dual union all
    select 'viii. я' as n  from dual )
select *
from s
order by  nlssort(n, 'NLS_SORT=BINARY');

N
------------------------------
v. я
vi.i я
vi.ii я
vii. я
viii. я


select 'v. я' as n  from dual union all
    select 'vi.i я' as n  from dual union all
    select 'vi.ii я' as n  from dual union all
    select 'vii. я'as n from dual union all
    select 'viii. я' as n  from dual
order by n;

N
------------------------------
v. я
vi.i я
vii. я
vi.ii я
viii. я


select 'v. я' as n  from dual union all
    select 'vi.i я' as n  from dual union all
    select 'vi.ii я' as n  from dual union all
    select 'vii. я'as n from dual union all
    select 'viii. я' as n  from dual
order by nlssort(n, 'NLS_SORT=BINARY');
order by nlssort(n, 'NLS_SORT=BINARY')
              *
ошибка в строке 6:
ORA-01785: аргумент ORDER BY должен быть номером выражения SELECT-списка
9 ноя 17, 17:53    [20940994]     Ответить | Цитировать Сообщить модератору
 Re: SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18337
Vadim Lejnin
в oracle нет встроенного типа римские числа


DocID 236825.1
9 ноя 17, 17:54    [20941000]     Ответить | Цитировать Сообщить модератору
 Re: SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7125
andrey_anonymous,

Классно! не знал, спасибо
9 ноя 17, 18:17    [20941050]     Ответить | Цитировать Сообщить модератору
 Re: SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)  [new]
exp98
Member

Откуда:
Сообщений: 2698
AmKad
NLSSORT c union all без inline view не работает?
Да, тоже ORA-01785.

У Девелопера не только точка. Так же точно он и цифру вместо точки, и '_' вместо неё тоже. Это я уже после поста проверил.

Всё равно спасибо посмотрю варианты, успокаивает, что на рабочей базе будет через Клиента работать (Vadim Lejnin ). Если что, то подтяну order_index.

Vadim Lejnin , не верите? см. картинку

На этот раз Элик сел в лужу (тоже ведь скажет, что сел в машину, а не в лужу ...)

К сообщению приложен файл. Размер - 10Kb
9 ноя 17, 18:26    [20941066]     Ответить | Цитировать Сообщить модератору
 Re: SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)  [new]
exp98
Member

Откуда:
Сообщений: 2698
По поводу ссылки DocID 236825.1

Пожалуйста, научите, как это превратить в ссылку для браузера.
9 ноя 17, 18:33    [20941084]     Ответить | Цитировать Сообщить модератору
 Re: SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18337
exp98
По поводу ссылки DocID 236825.1

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

1. Получить у ответственного в Вашей организации доступ на support.oracle.com
2. Вбить указанный идентификатор документа в строку поиска

К сожалению, публикация этих документов здесь запрещена как вендором, так и правилами форума.
9 ноя 17, 18:41    [20941103]     Ответить | Цитировать Сообщить модератору
 Re: SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18337
exp98
У Девелопера не только точка. Так же точно он и цифру вместо точки, и '_' вместо неё тоже. Это я уже после поста проверил.

Всё равно спасибо посмотрю варианты, успокаивает, что на рабочей базе будет через Клиента работать (Vadim Lejnin ). Если что, то подтяну order_index.

Vadim Lejnin , не верите? см. картинку

На этот раз Элик сел в лужу (тоже ведь скажет, что сел в машину, а не в лужу ...)


1. NLSSORT работает по-разному в зависимости от NLS-окружения. Да, пунктуация в некоторых окружениях вся собрана в кучу.
И нет, это не свойство клиента или приложения - просто они у вас работают с разным NLS-окружением.
Подробнее - в Globalization Support Guide

2. И что на картинке?
Полагаете, что VI в самом деле должна следовать за VII?
VII
VI
VIII

3. А вот про Elic напрасно - он, в отличие от Вас, тему NLS знает вдоль и поперек.
9 ноя 17, 18:49    [20941117]     Ответить | Цитировать Сообщить модератору
 Re: SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)  [new]
exp98
Member

Откуда:
Сообщений: 2698
Ясно.
9 ноя 17, 18:49    [20941119]     Ответить | Цитировать Сообщить модератору
 Re: SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)  [new]
exp98
Member

Откуда:
Сообщений: 2698
andrey_anonymous,
я предполагал другое, что сортировка не выкидывает символы. А с выкидышами всё логично.

Про Элика я прав, если это не было тонким тролингом с его стороны. Надеюсь, от него не убудет.
9 ноя 17, 19:03    [20941153]     Ответить | Цитировать Сообщить модератору
 Re: SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18337
exp98
Про Элика я прав, если это не было тонким тролингом с его стороны.

Ну попробуйте его опровергнуть, вот Вам набор данных:
with t as (select rownum N, to_char(r,'RN') RN from dual connect by level < 1000)
select * from t 
order by rn
9 ноя 17, 19:26    [20941207]     Ответить | Цитировать Сообщить модератору
 Re: SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)  [new]
exp98
Member

Откуда:
Сообщений: 2698
andrey_anonymous,
я не собирался развивать тему Маэстро ... Я знаю, что не читал оракловых подробностей о сортировке, я много чего не читал и даже не подозреваю о существовнии. Ваш пример опровергнуть наверное не получится.

Спасибо всем за разъяснения и уделённое мне время.

Всё ниже промелькнуло в башке мгновенно, после чего я и вынес тот свой вердикт, можно не читать.
+
Чтобы положить спору конец, рассмотрим фразу буквально:
"Тебе только кажется, что это числа. А предположение о "сортируемости" римского числа как строки выдаёт владение счётом на уровне первого класса."

1-е предложение, прочтённое буквально, неверно, мне это не казалось ни мгновения.
2-е предложение в наиболее непротиворечивой интерпретации:
посылка а) я предполагаю, что речь идёт римских числах. Неверно, см. выше.

посылка б) речь о сортировке числа(?) как строки, и я так предполагал. Из этого почему-то сделан вывод о не владении счётом, хоть арабским, хоть римским, хоть ... р-адическим. Таки я не предполагал, что речь идёт о числах, хоть каких. Снова, как Вы поняли, неверный вывод. Что я писал про числовые настройки, я имел ввиду сугубо точку в качестве разделителя для обычной десятичной записи, и что вдруг это как-то сказывается.

И вообще причём здесь какой-то счёт?

посылка в)
Единственное рациональное зерно во 2-м предложении, с т.зр. моего незнания темы, могло заключаться в том, что оракле, встречая в поле VI.I, проявляет "умничание", и что это поведение связано с NLS. И что это поведение имелось ввиду между строк. Но и в этом случае, вывод о владении счётом чрезвычайно завауалированно связан с намёком. И опять же, причём здесь счёт?

Т.о. фраза в целом является "навозной кучей", копаться в к-рой можно лишь при желании непременно найти жемчужное зерно и при уверенности, что оно там действительно было. Но коль скоро Маэстро дйствительно имел ввиду именно это и одновременноименно так оценивал мои знания, то вот вопрос, в какой же срок он оценивал длительность моего копания?

Исходя из достаточно большого для маленькой фразы кол-ва неудачных посылок, я мгновенно решил, что искать глубинный смысл не стоило (а теперь уже и не нужно), и моё обоснованое замечание по сравнению с предположительными "предположениями" Маэстро обо мне, выглядит вполне невинно и очевидной шуткой. Попробуйте опровергнуть.

А стоило ли искать глубинный смысл, знает только автор, но рассчитывать на правду маловероятно, и в культурном сообществе лучше эту тему не продолжать.
ИМХО
9 ноя 17, 20:51    [20941392]     Ответить | Цитировать Сообщить модератору
 Re: SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 2757
Vadim Lejnin
andrey_anonymous,

Классно! не знал, спасибо


что за числа?

знал токо месяц и "год" (rm/rn)

ps
счас доступ на металинк для меня закрыли

....
stax
10 ноя 17, 10:08    [20942392]     Ответить | Цитировать Сообщить модератору
 Re: SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)  [new]
Просто треб
Guest
Stax
счас доступ на металинк для меня закрыли

Я бы и сюда тебе доступ закрыл.
10 ноя 17, 10:21    [20942453]     Ответить | Цитировать Сообщить модератору
 Re: SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 2757
Просто треб
Stax
счас доступ на металинк для меня закрыли

Я бы и сюда тебе доступ закрыл.


к етому все идет, не долго осталось

.....
stax
10 ноя 17, 10:48    [20942552]     Ответить | Цитировать Сообщить модератору
 Re: SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18479
Stax
Vadim Lejnin
andrey_anonymous,

Классно! не знал, спасибо


что за числа?

знал токо месяц и "год" (rm/rn)

ps
счас доступ на металинк для меня закрыли

....
stax
А там как раз про год и идет
Твое сообщение тринадцатилетней давности работа с датами

Ну и обратная функция чуток другая
10 ноя 17, 13:36    [20943461]     Ответить | Цитировать Сообщить модератору
 Re: SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 2757
Вячеслав Любомудров
А там как раз про год и идет
Твое сообщение тринадцатилетней давности работа с датами

Ну и обратная функция чуток другая


спасибо

но ето не совсем встроенный тип

.....
stax
10 ноя 17, 13:49    [20943538]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить