Transact SQL порядок символов с символами - PullRequest
1 голос
/ 01 апреля 2019

Я вижу, что T-SQL заказывает varchar, который начинается с символа особым образом.

Попробуйте это:

declare @test as table (val varchar(5) not null)

insert into @test 
values ('aaaa'), ('aabb'), ('-aaa'), ('+aaa'), ('ciao'), ('-bb'), ('+bb'), ('bau'), ('bcd')

select * from @test order by val

Возвращает:

  1. + ааа
  2. + бб
  3. -aaa
  4. аааа
  5. ААББ
  6. бау
  7. -bb
  8. BCD
  9. чао

Так что минус иногда игнорируется при сравнении букв, но используется по сравнению с другими символами ...

Я пытался найти объяснение этому поведению в MSDN, но не нашел его ...

Есть какое-то известное правило об этом?

1 Ответ

0 голосов
/ 01 апреля 2019

Хорошо, я получаю тот же результат, что и вы, используя sql server 2016 - но я могу получить порядок как Hiten, если я упорядочиваю по ASCII (val) - поэтому я думаю, что порядок связан с некоторой комбинацией значений ASCII / Unicode ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...