Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 сортировка 'A' - 'a' - '1' ------> '1' - 'a' - 'A'  [new]
expimp
Member

Откуда:
Сообщений: 573
Имею от чужеземных архитекторов не очень понятную для меня задачу.

Обычная БД
select * from nls_database_parameters where parameter in ('NLS_CHARACTERSET', 'NLS_SORT')

PARAMETER VALUE
-------------------- ----------
NLS_CHARACTERSET AL32UTF8
NLS_SORT BINARY

insert into abc values('A');
insert into abc values('1');
insert into abc values('a');

select * from abc order by str;

STR
----
'A'
'a'
'1'

Они хотят наоброт - '1' - 'a' - 'A'
Я говорю, пожалуйста

select * from abc order by str DESC;

STR
----
'1'
'a'
'A'

Но получаю от них мейл "We should perform sorting at the database layer."

Посоветуйте, какую сортировку использовать.
29 авг 13, 18:01    [14772547]     Ответить | Цитировать Сообщить модератору
 Re: сортировка 'A' - 'a' - '1' ------> '1' - 'a' - 'A'  [new]
Ramin Hashimzade
Member

Откуда: Азербайджан, Баку
Сообщений: 9979
Блог
expimp,

Если они имеют веду , без указание ордербай сортировать таблицу, то имей веду что б ты не делал оракл 11g не дает гарантию на нужную сортировку без указан явного ордербай
29 авг 13, 21:03    [14773041]     Ответить | Цитировать Сообщить модератору
 Re: сортировка 'A' - 'a' - '1' ------> '1' - 'a' - 'A'  [new]
энэлэсовец
Guest
expimp
STR
----
'A'
'a'
'1'
это не binary. а стандартной сортировки, где мелкие буквы вперед больших, нет.
можешь нарисовать свою.
29 авг 13, 21:08    [14773050]     Ответить | Цитировать Сообщить модератору
 Re: сортировка 'A' - 'a' - '1' ------> '1' - 'a' - 'A'  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54375
expimp,

интересно, а куда в этом списке они хотят поставить буквы B и b?
30 авг 13, 00:20    [14773650]     Ответить | Цитировать Сообщить модератору
 Re: сортировка 'A' - 'a' - '1' ------> '1' - 'a' - 'A'  [new]
--Eugene--
Member

Откуда: Боярышник
Сообщений: 2170
Ramin Hashimzade
что б ты не делал оракл 11g не дает гарантию на нужную сортировку без указан явного ордербай
И кстати не только 11g.
Погодите, а если задействовать IOT ? - даже тогда гарантии нет?
30 авг 13, 00:43    [14773691]     Ответить | Цитировать Сообщить модератору
 Re: сортировка 'A' - 'a' - '1' ------> '1' - 'a' - 'A'  [new]
Ramin Hashimzade
Member

Откуда: Азербайджан, Баку
Сообщений: 9979
Блог
--Eugene--
Ramin Hashimzade
что б ты не делал оракл 11g не дает гарантию на нужную сортировку без указан явного ордербай
И кстати не только 11g.
Погодите, а если задействовать IOT ? - даже тогда гарантии нет?


автор
What Are Index-Organized Tables?

An index-organized table has a storage organization that is a variant of a primary B-tree. Unlike an ordinary (heap-organized) table whose data is stored as an unordered collection (heap), data for an index-organized table is stored in a B-tree index structure in a primary key sorted manner. Each leaf block in the index structure stores both the key and nonkey columns.
30 авг 13, 08:18    [14773930]     Ответить | Цитировать Сообщить модератору
 Re: сортировка 'A' - 'a' - '1' ------> '1' - 'a' - 'A'  [new]
Gustly
Member

Откуда:
Сообщений: 1426
Ну да, DESC не хотят, мы сделаем свою сортировку, с блэкджеком и ......
30 авг 13, 09:11    [14774109]     Ответить | Цитировать Сообщить модератору
 Re: сортировка 'A' - 'a' - '1' ------> '1' - 'a' - 'A'  [new]
беспорядки в иоте
Guest
--Eugene--
Ramin Hashimzade
что б ты не делал оракл 11g не дает гарантию на нужную сортировку без указан явного ордербай
И кстати не только 11g.
Погодите, а если задействовать IOT ? - даже тогда гарантии нет?
ffs и parallel дают гарантию, что гарантии не будет.
30 авг 13, 10:14    [14774461]     Ответить | Цитировать Сообщить модератору
 Re: сортировка 'A' - 'a' - '1' ------> '1' - 'a' - 'A'  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54375
спрошу еще раз:
andreymx
expimp,
интересно, а куда в этом списке они хотят поставить буквы B и b?
30 авг 13, 10:51    [14774711]     Ответить | Цитировать Сообщить модератору
 Re: сортировка 'A' - 'a' - '1' ------> '1' - 'a' - 'A'  [new]
expimp
Member

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

Я понимаю, что хотят они примерно так.

A
a
...
B
b
...
1
2
...

На коротке не получилось. Читаю Globalization Support... :(
30 авг 13, 12:20    [14775456]     Ответить | Цитировать Сообщить модератору
 Re: сортировка 'A' - 'a' - '1' ------> '1' - 'a' - 'A'  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54375
expimp
andreymx,

Я понимаю, что хотят они примерно так.

A
a
...
B
b
...
1
2
...

На коротке не получилось. Читаю Globalization Support... :(
переспроси
нофсякей :)
30 авг 13, 12:30    [14775553]     Ответить | Цитировать Сообщить модератору
 Re: сортировка 'A' - 'a' - '1' ------> '1' - 'a' - 'A'  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
да фигня вопрос -
order by translate ..
30 авг 13, 12:51    [14775691]     Ответить | Цитировать Сообщить модератору
 Re: сортировка 'A' - 'a' - '1' ------> '1' - 'a' - 'A'  [new]
Guest_Svetlanka
Guest
with abc as
  (select 'A' str from dual
  union all
  select '1' from dual
  union all
  select 'b' from dual
  union all
  select 'B' from dual
  union all
  select 'a' from dual
  union all
  select '2' from dual
)
select * from abc order by NLSSORT(str,'NLS_SORT=Russian');

S
-
A
a
B
b
1
2

6 строк выбрано.
30 авг 13, 13:00    [14775740]     Ответить | Цитировать Сообщить модератору
 Re: сортировка 'A' - 'a' - '1' ------> '1' - 'a' - 'A'  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54375
orawish
да фигня вопрос -
order by translate ..
они ж не хотят писать транслейты
они хотят обычный ордер бай или вообще без него, а на выходе - хотелка
30 авг 13, 13:13    [14775813]     Ответить | Цитировать Сообщить модератору
 Re: сортировка 'A' - 'a' - '1' ------> '1' - 'a' - 'A'  [new]
Ramin Hashimzade
Member

Откуда: Азербайджан, Баку
Сообщений: 9979
Блог
andreymx
они хотят обычный ордер бай или вообще без него, а на выходе - хотелка


Вот это нужно точно уточнить, все таки с ордер бай или без него.
30 авг 13, 13:23    [14775879]     Ответить | Цитировать Сообщить модератору
 Re: сортировка 'A' - 'a' - '1' ------> '1' - 'a' - 'A'  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
andreymx
orawish
да фигня вопрос -
order by translate ..
они ж не хотят писать транслейты
они хотят обычный ордер бай или вообще без него, а на выходе - хотелка

ну и на здоровье -
1) вычисляемая колонка с тем транслитом и ордер бай по ней
2) или вью
а вот хотелка сортировки вообще без ордер бай - это (имхо) вредная хотелка, но опять же
3) вью с ордер бай
30 авг 13, 13:28    [14775916]     Ответить | Цитировать Сообщить модератору
 Re: сортировка 'A' - 'a' - '1' ------> '1' - 'a' - 'A'  [new]
найми переводчика
Guest
expimp
andreymx,

Я понимаю, что хотят они примерно так.

A
a
...
B
b
...
1
2
...

На коротке не получилось. Читаю Globalization Support... :(
цифры после букв есть, например, в русской сортировке, которая, судя по твоему первому посту, у тебя уже установлена, но якобы не устратвает.
30 авг 13, 13:51    [14776078]     Ответить | Цитировать Сообщить модератору
 Re: сортировка 'A' - 'a' - '1' ------> '1' - 'a' - 'A'  [new]
expimp
Member

Откуда:
Сообщений: 573
Загрузил строчки,

insert into abc values('Accsess');
insert into abc values('7');
insert into abc values('1');
insert into abc values('3');
insert into abc values('ape');
insert into abc values('Bungaloo');
insert into abc values('Buster');
insert into abc values('Booster');
insert into abc values('best');
insert into abc values('booster');
insert into abc values('Bastard');

Поставил
alter session set nls_sort='BINARY_AI';
alter session set nls_comp='BINARY';

Вывод такой:
1
3
7
Accsess
ape
Bastard
best
Booster
booster
Bungaloo
Buster

Все бы хорошо, но заглавные идут вперемежку со строчными.... (
30 авг 13, 14:31    [14776363]     Ответить | Цитировать Сообщить модератору
 Re: сортировка 'A' - 'a' - '1' ------> '1' - 'a' - 'A'  [new]
Сергей Арсеньев
Member

Откуда:
Сообщений: 4118
expimp
Все бы хорошо, но заглавные идут вперемежку со строчными.... (

В принципе можно, хотя возможно, что та, что Вам нужна, уже сделана.
30 авг 13, 15:17    [14776635]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить