Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Стандарт или фича от MS? / 11 сообщений из 11, страница 1 из 1
21.09.2016, 11:50
    #39312568
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарт или фича от MS?
Надо было сравнить два справочника из разных БД (MSSQL, MySQL) и на ровном месте наступил на грабли.
Код теста
Код: sql
1.
2.
3.
4.
5.
6.
create table t (f char(10))
insert into t values ('aaa')
insert into t values ('abc')
insert into t values ('a-b')
select * from t order by f
drop table t


Результат
MSSQLMySQLaaaa-ba-baaaabcabc
Спросил в форуме MSSQL, ожидаемо получил ответ что это стандарт 19690427 . Только я сомневаюсь что MySQL нестандарт. Склоняюсь что это багофича от МС 19690575
Затестил в C#, совпадает с MSSQL
Код: sql
1.
2.
3.
4.
			var arr = new String[] {"abc", "aaa", "a-b" };
			foreach(var s in arr.OrderBy(x => x)) {
				Console.WriteLine(s);
			}


Код: plaintext
1.
2.
aaa
a-b
abc

Затестил в FoxPro - результат как в MySQL

Больше затестить негде. Нет ЯП с регистронезависимой сортировкой. Других СУБД тоже нет. У кого есть - затестите, отпишитесь. Просто интересно где как отработает.
...
Рейтинг: 0 / 0
21.09.2016, 12:22
    #39312604
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарт или фича от MS?
фича от МС.

был в восторге, когда столкнулся.

PS в msaccess - аналогично
...
Рейтинг: 0 / 0
21.09.2016, 12:34
    #39312625
OoCc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарт или фича от MS?
Dima T,

всё дело в collation

MySQL делает binary sort. попробуй так для MSSQL

Код: sql
1.
select * from t order by f collate Latin1_General_BIN
...
Рейтинг: 0 / 0
21.09.2016, 12:54
    #39312644
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарт или фича от MS?
OoCcMySQL делает binary sort
Нет. В моем MySQL по умолчанию UTF-8 и регистронезависимая сортировка (COLLATE utf8_general_ci) Вот полный скрипт.
Код: sql
1.
2.
3.
CREATE TABLE `t` (
  `f` char(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


OoCcпопробуй так для MSSQL
именно так и порешал 19690303

Чуть модифицирую тест, чтобы видно было если binary sort включится (Abc на первое место выйдет, иначе последнее)
Код: sql
1.
2.
3.
4.
5.
create table t (f char(10))
insert into t values ('aaa')
insert into t values ('Abc')
insert into t values ('a-b')
select * from t order by f



У кого есть Oracle, Postgres, Firebird ? Затестите пожалуйста.
...
Рейтинг: 0 / 0
21.09.2016, 13:16
    #39312661
svpk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарт или фича от MS?
Dima TУ кого есть Oracle, Postgres, Firebird ? Затестите пожалуйста.
На Oracle:
a-b
aaa
abc
...
Рейтинг: 0 / 0
21.09.2016, 15:17
    #39312763
yw
yw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарт или фича от MS?
svpkDima TУ кого есть Oracle, Postgres, Firebird ? Затестите пожалуйста.
На Oracle:
a-b
aaa
abc

аналогично в PostgreSQL, DB2, H2:
a-b
aaa
abc
...
Рейтинг: 0 / 0
21.09.2016, 15:23
    #39312778
yw
yw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарт или фича от MS?
yw
аналогично в PostgreSQL, DB2, H2:
a-b
aaa
abc

Да, и в java сортировка строк такая-же
...
Рейтинг: 0 / 0
21.09.2016, 15:46
    #39312797
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарт или фича от MS?
Спасибо всем. Версия "Фича от MS" подтвердилась.
...
Рейтинг: 0 / 0
21.09.2016, 15:49
    #39312800
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарт или фича от MS?
Скорее - использование хитровывернутого умолчания для сортировки там, где большинство не выёживается.
...
Рейтинг: 0 / 0
21.09.2016, 15:59
    #39312810
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарт или фича от MS?
Basil A. SidorovСкорее - использование хитровывернутого умолчания для сортировки там, где большинство не выёживается.код изменения умолчания - не подскажешь?
...
Рейтинг: 0 / 0
21.09.2016, 16:26
    #39312837
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарт или фича от MS?
Нагуглил Unicode Collation Algorithm там 5 видов сравнения. Правда не понял любой можно юзать для конкретного языка или есть ограничения.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Стандарт или фича от MS? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]