Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Сортировка  [new]
Lucifer
Member

Откуда: Лисичанск
Сообщений: 334
select ss, l from (
select ss = '22_____', l = len ('22_____')
union
select ss ='2222222', l = len ('2222222')
) ss
order by len(ss) , ss desc

select ascii ('_')-- 95
select ascii ('2') -- 50

ss      l
------- -----------
2222222 7
22_____ 7

почему так, ведь по моему должно быть наоборот, ведь у '_' код 95 а у '2' - 50
--------------------------------
Liberate Tu Temet Ex Inferis
19 янв 06, 18:03    [2270748]     Ответить | Цитировать Сообщить модератору
 Re: Сортировка  [new]
Glory
Member

Откуда:
Сообщений: 104760
collation у базы/сервера какой ?
19 янв 06, 18:06    [2270759]     Ответить | Цитировать Сообщить модератору
 Re: Сортировка  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

select ss, l from (
select ss = '22_____', l = len ('22_____')
union
select ss ='2222222', l = len ('2222222')
) ss
order by len(ss) , ss collate Latin1_General_BIN desc



Posted via ActualForum NNTP Server 1.3

19 янв 06, 18:09    [2270774]     Ответить | Цитировать Сообщить модератору
 Re: Сортировка  [new]
Lucifer
Member

Откуда: Лисичанск
Сообщений: 334
Glory
collation у базы/сервера какой ?


SQL_Latin1_General_CP1251_CI_AS

а как узнать sort order collation'а??
19 янв 06, 18:19    [2270816]     Ответить | Цитировать Сообщить модератору
 Re: Сортировка  [new]
Lucifer
Member

Откуда: Лисичанск
Сообщений: 334
Что, никак нельзя узнать, какой у коллэйшена сорт ордер??
--------------------------------
Liberate Tu Temet Ex Inferis
25 янв 06, 15:06    [2286595]     Ответить | Цитировать Сообщить модератору
 Re: Сортировка  [new]
Glory
Member

Откуда:
Сообщений: 104760
SERVERPROPERTY
25 янв 06, 15:11    [2286624]     Ответить | Цитировать Сообщить модератору
 Re: Сортировка  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
select ss, l from (
select ss = '22_____', l = len ('22_____')
union
select ss ='2222222', l = len ('2222222')
) ss
order by len(ss) , ss COLLATE Cyrillic_General_BIN desc
25 янв 06, 15:18    [2286659]     Ответить | Цитировать Сообщить модератору
 Re: Сортировка  [new]
Lucifer
Member

Откуда: Лисичанск
Сообщений: 334
SERVERPROPERTY вернет название коллейшена, как я понимаю.

еще раз попробую пояснить че хочу :)

вот 2 запроса

--SQL_Latin1_General_CP1251_CI_AS

select ss, l from (
select ss = '22_____', l = len ('22_____')
union
select ss ='2222222', l = len ('2222222')
) ss
order by len(ss) , ss desc

результат

ss      l
------- -----------
2222222 7
22_____ 7

select ss, l from (
select ss = '22_____', l = len ('22_____')
union
select ss ='2222222', l = len ('2222222')
) ss
order by len(ss) , ss collate Latin1_General_BIN desc

результат совсем другой.

так вот надо узнать, будет ли правильно сортировать. а правильно, это как в первый раз. но на другох коллейшенах. или только методом тыка?
--------------------------------
Liberate Tu Temet Ex Inferis
25 янв 06, 15:18    [2286660]     Ответить | Цитировать Сообщить модератору
 Re: Сортировка  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
что-нибудь такое можно попробовать:
select numbers.ID, char(numbers.ID) collate SQL_Latin1_General_CP1251_CI_AS
from numbers
where char(numbers.ID) is not null
order by
  char(numbers.ID) collate SQL_Latin1_General_CP1251_CI_AS
numbers - таблица, содержащая числа от 1 до ...
25 янв 06, 15:22    [2286689]     Ответить | Цитировать Сообщить модератору
 Re: Сортировка  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Lucifer

еще раз попробую пояснить че хочу :)

...
результат совсем другой.

так вот надо узнать, будет ли правильно сортировать. а правильно, это как в первый раз. но на другох коллейшенах. или только методом тыка?
--------------------------------
Liberate Tu Temet Ex Inferis


Конечно другой ибо используется имено "код символа" для сортировки. А Вам разве не это нужно было.
25 янв 06, 15:43    [2286829]     Ответить | Цитировать Сообщить модератору
 Re: Сортировка  [new]
Lucifer
Member

Откуда: Лисичанск
Сообщений: 334
pkarklin

Конечно другой ибо используется имено "код символа" для сортировки. А Вам разве не это нужно было.


вопрос не в этом. можно узнать не выполняя сортировку, как оно посортирует с использованием того или иного коллейшена. или только пробовать. меня интересуют правила сортировки для конкретного коллейшена. сами правила.
25 янв 06, 15:50    [2286868]     Ответить | Цитировать Сообщить модератору
 Re: Сортировка  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Непонимаю, зачем Вам чего-то узнавать, если Вам надо сортировать по "коду" символа. Приводите к соллэйшену с BIN. И что значит "того или иного коллэйшена"? Вы мультиязычную систему пишите? Тогда Вам нужен другой тип данных,а вот коллэйшен можете указать с BIN.
25 янв 06, 15:55    [2286918]     Ответить | Цитировать Сообщить модератору
 Re: Сортировка  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Другой тип данных - nvarchar.
25 янв 06, 15:56    [2286924]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить