Форум: "Прочее";
Текущий архив: 2011.12.18;
Скачать: [xml.tar.bz2];
ВнизSQL order by Найти похожие ветки
← →
armstrong (2011-08-31 23:34) [0]подскажите пожалуйста, ADO, при упорядочивании (ASC) имею список:
АБВ
А-А
почему А-А стоит ниже?
ведь код - (2D) менее Б
и как сделать что бы было
А-А
АБВ ?
← →
Ega23 © (2011-09-01 01:10) [1]дай обе строки в Hex-значениях
← →
Юрий Зотов © (2011-09-01 01:17) [2]desc?
:o)
← →
armstrong (2011-09-01 01:32) [3]С0 С1 С2
С0 2В С0
← →
Inovet © (2011-09-01 05:47) [4]Может collation какой левый указан?
← →
Ega23 © (2011-09-01 08:40) [5]
> С0 С1 С2
> С0 2В С0
Это точно? Или ты сейчас ручками по таблице символов переводил?
← →
armstrong (2011-09-01 08:45) [6]не могли бы вы без ироний подсказать свою версию,
я бы проверил
← →
Медвежонок Пятачок © (2011-09-01 09:09) [7]ведь код - (2D) менее Б
Зато код A менее А
← →
Медвежонок Пятачок © (2011-09-01 09:19) [8]Это точно? Или ты сейчас ручками по таблице символов переводил?
Может и точно.
Он же не оговорит, что ордер бай у него сделан по тому же самому полю, чьи значения он здесь привел.
← →
armstrong (2011-09-01 09:25) [9]Медвежонок Пятачок ©,
немножко не понял вашу мысль..
Ega23 ©, может вы имеете ввиду то, что в другой кодировке храняться данные в базе?
но по-моему код hyphen-minus будет всегда меньше, в какой кодировке не были бы.
Inovet ©, в collation не лез, всё по умолчанию..
← →
armstrong (2011-09-01 09:40) [10]может и правда с collation нужно было поиграться?
я так понимаю все параметры можно посмотреть в fn_helpcollations() ?
← →
armstrong (2011-09-01 09:50) [11]Медвежонок Пятачок ©, конечно же order by по этому полю и делаю, откуда и возникает такой вопрос..
← →
Ega23 © (2011-09-01 10:31) [12]
> может вы имеете ввиду то, что в другой кодировке храняться
> данные в базе?
> но по-моему код hyphen-minus будет всегда меньше, в какой
> кодировке не были бы.
Я имею ввиду ровно то, что имею ввиду.
Прочитай посимвольно строку и выдай сюда результат в hex. Может быть у "A-A" сзади пробел или символ табуляции? Может быть у "AБВ" первый символ - латинский. Можеь быть это не тире, а короткое тире.
StrComp и AnsiStrComp показывают, что "АБВ" > "А-А". Поэтому давай сюда реальные hex-значения строк, а не твои предположения "по-моему"
← →
armstrong (2011-09-01 11:25) [13]Ega23 ©,
000000: C0 C1 C2
000000: C0 2D C0
тут даже проблема не в том.. это я для примера..
столкнулся с тем, что папки сканирую и кидаю в таблицу.
в тотале том же смотрю папки - первая идет А-.... затем уже типа Абв...
в таблице же (по order by выбор)) смотрю папка А- стоит на последнем месте.
проверяю код, - при сканировании директорий система её первую находит и первую я добавляю в базу.
немножко для меня это важно, поэтому хотел уточнить почему так и как с этим бороться.
проверял только под ADO
← →
Ega23 © (2011-09-01 11:29) [14]
> в таблице же (по order by выбор)) смотрю папка А- стоит
> на последнем месте.
1. Тип СУБД.
2. Скрипт создания таблицы.
3. Код добавления данных в БД.
← →
Медвежонок Пятачок © (2011-09-01 11:34) [15]такой простой вопрос, а поставил автора в тупик.
встретил странное - локализуй причину чуда.
убери адо, сделай запрос в нативном инструменте.
убери сканирование папапок, - сделай явный инсерт С0 С1 С2, С0 2В С0
и так далее.
← →
armstrong (2011-09-01 11:42) [16]спасибо за ответы, просто дома балуюсь вечерами.
прийду с работы попробую обязательно и отпишусь
← →
Ega23 © (2011-09-01 13:26) [17]
> в тотале том же смотрю папки - первая идет А-.... затем
> уже типа Абв...
Кстати. Total Commander на Delphi написан. Соответственно, порядок должен совпадать (по-идее).
Интересный вопрос.
Давай вечером вываливай сюда всю подноготную:
1. Тип СУБД
2. Скрипт создания таблицы.
3. Код сканирования директории.
4. Код добавления данных в СУБД.
5. Код выборки данных из СУБД (с телом запроса).
6. Код сортировки данных на клиенте.
7. Сами данные: 3 директории с именами А-А, АБВ и ещё какую-нибудь. Только файлы внутри удали. Заархивируй и выложи куда-нить.
← →
Anatoly Podgoretsky © (2011-09-01 13:44) [18]
> не могли бы вы без ироний подсказать свою версию,
Тебе же сказали Collation
← →
Anatoly Podgoretsky © (2011-09-01 13:45) [19]
> Он же не оговорит, что ордер бай у него сделан по тому же
> самому полю, чьи значения он здесь привел.
Он вообще партизан и хулиган, почему то считает, что это к программированию в Дельфи как то относится.
← →
Anatoly Podgoretsky © (2011-09-01 13:46) [20]
> Inovet ©, в collation не лез, всё по умолчанию..
То есть у тебя английская collation что ли? И чего ты тогда хочешь?
← →
Ega23 © (2011-09-01 13:47) [21]
> Тебе же сказали Collation
Разве collation должен играть какую-то роль при сортировке на клиенте? По-идее - strcmp и вперёд с песней.
Хотя может всё печальней оказаться.
← →
Anatoly Podgoretsky © (2011-09-01 13:49) [22]
> armstrong (01.09.11 11:25) [13]
> Ega23 ©,
>
> 000000: C0 C1 C2
> 000000: C0 2D C0
>
> тут даже проблема не в том.. это я для примера..
> столкнулся с тем, что папки сканирую и кидаю в таблицу.
> в тотале том же смотрю папки - первая идет А-.... затем
> уже типа Абв...
АБВ <> Абв
специально запутываешь?
← →
Ega23 © (2011-09-01 13:53) [23]
> То есть у тебя английская collation что ли? И чего ты тогда хочешь?
А какая разница? Если в гексе всё именно так, как ТС привёл
000000: C0 C1 C2
000000: C0 2D C0
то, по-идее, что win1251, что какая другая. Первая строка будет больше, чем вторая, тупо по побайтному сравнению.
> АБВ <> Абв
Это да. Но изначально вопрос был про "А-А" и "АБВ". Я-ж ещё ночью засомневался, проверил тупо по StrComp и AnsiStrComp. "А-А" - в обоих случаях меньше.
← →
Anatoly Podgoretsky © (2011-09-01 13:59) [24]> Ega23 (01.09.2011 13:53:23) [23]
Не надо побитно сравнивать, если collation не BIN-xxxx
← →
Inovet © (2011-09-01 14:37) [25]> [21] Ega23 © (01.09.11 13:47)
> Разве collation должен играть какую-то роль при сортировке
> на клиенте?
Почему на клиенте, когда в ORDER BY.
> [23] Ega23 © (01.09.11 13:53)
> А какая разница? Если в гексе всё именно так, как ТС привёл
> 000000: C0 C1 C2
> 000000: C0 2D C0
Все русские будут равны 00 при сравнении.
Что-нибудь такое
000000: 00 00 00
000000: 00 2D 00
← →
Ega23 © (2011-09-01 14:40) [26]
> Все русские будут равны 00 при сравнении.
Оп-па... Это точно?
Я просто с такой фигнёй ни разу не сталкивался. Какой collate на столбец надо наложить для, допустим, MSSQL? Ну для 2005 или 2008 (других под рукой нет).
← →
Inovet © (2011-09-01 15:15) [27]> [26] Ega23 © (01.09.11 14:40)
> Какой collate на столбец надо наложить для, допустим, MSSQL?
Не могу сказать, надо смотреть, как там. Но в общем, не только в MSSQL, эффекты всякие могут быть. Кстати, может быть и АБВ = Абв.
← →
Ega23 © (2011-09-01 15:44) [28]
> Кстати, может быть и АБВ = Абв.
Collation с CI на CS поменять.
З.Ы. помню, долго с этой фигнёй мучился, пару дней искал.
З.З.Ы. Да, походу проблема действительно в Collation.
← →
Anatoly Podgoretsky © (2011-09-01 16:15) [29]> Inovet (01.09.2011 15:15:27) [27]
Я обычно использую ххх_CI_AS но потому мне так надо. Он еще учитывает
телефонную сортировку 11-123 и 11123 равные строки
← →
armstrong (2011-09-01 19:09) [30]ну вот посмотрите, набросал быстро код, выложил на http://ifolder.ru/25510211
у меня сортирует так:
A-A
AAAA
A-СТУДИО
АЮЮ
почему A-СТУДИО не идет за А-А ?
← →
armstrong (2011-09-01 19:12) [31]хм.. в проводнике так же отображаются папки как и в проге..
а в total commandere
A-A
A-СТУДИО
...
ещё больше запутался ))
← →
asail © (2011-09-01 19:38) [32]
> armstrong (01.09.11 19:09) [30]
Может, все ж у тебя в 2-х первых строках буква А англицкая, а в 2-х следующих - русские? Замени всюду "А" на что-то более однозначное: "Б" например...
← →
Inovet © (2011-09-01 19:58) [33]> [32] asail © (01.09.11 19:38)
> Может, все ж у тебя в 2-х первых строках буква А англицкая,
> а в 2-х следующих - русские?
В архиве все русские.
← →
armstrong (2011-09-01 20:02) [34]да русские в том-то и дело..
непойму почему и винда в проводнике так же криво сортирует..
а может тут какой-то сокрыльный смысл..
пока не нашел смысла..
а как сделать
A-A
A-СТУДИО
в списке - вообще и мыслей нет..
← →
Inovet © (2011-09-01 20:09) [35]> [34] armstrong (01.09.11 20:02)
У винды применение интеллекта для сортировки достает, поэтому очень редко через эксплорер смотрю.
← →
Медвежонок Пятачок © (2011-09-01 20:09) [36]A-A
A-СТУДИО
a-a = ""
a-студио = <> ""
:)
← →
Anatoly Podgoretsky © (2011-09-01 20:10) [37]> armstrong (01.09.2011 19:09:30) [30]
Потому что у тебя телефонное сравнение. тире игнорируется. и у тебя
отсортировано как
AA
AAAA
AСТУДИО
АЮЮ
Очень удобная сортировка для телефонов
← →
Inovet © (2011-09-01 20:12) [38]> [29] Anatoly Podgoretsky © (01.09.11 16:15)
> Он еще учитывает телефонную сортировку 11-123 и 11123 равные строки
← →
Anatoly Podgoretsky © (2011-09-01 20:13) [39]> armstrong (01.09.2011 19:12:31) [31]
Сделай вывод, что TC кривой
← →
asail © (2011-09-01 20:14) [40]
> Anatoly Podgoretsky © (01.09.11 20:10) [37]
Похоже на правду... Тока с чего бы винде в експлорере телепонное сравнение использовать?
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2011.12.18;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.004 c