Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.10.09;
Скачать: [xml.tar.bz2];

Вниз

Сортировка символьных полей   Найти похожие ветки 

 
carmen ©   (2005-08-24 11:15) [0]

Имеется таблица с информацией о клиенте. Среди полей имеем поля DOM и KV типа Varchar. Примерные значения поля DOM: 2, 106, 1/105, 1/10, 9/54, 106/1. Примерные значения поля KV: 1, 2, 3, 4, 4а.
Вопрос в том как их можно отсортировать правильно чтобы они шли в порядке вохрастания и убывания. На данный момент сортировка имеет такой порядок: 1,11,12,13,14,15,2,20,21,22,23,24,3,4,5,50,51 а поправилам должно быть: 1,2,3,4,5,11,12,13,14,15,20,21,22,23,24,50,51


 
DrPass ©   (2005-08-24 12:06) [1]


> поправилам должно быть: 1,2,3,4,5,11,12,13,14,15,20,21,22,23,24,50,51

Это по правилам сортировки чисел. По правилам сортировки строк правильно
> 1,11,12,13,14,15,2,20,21,22,23,24,3,4,5,50,51

Поэтому если поле должно быть строковым и хранить число, его дополняют нулями до нужного количества разрядов: 01,11,12,13,14,15,02,20... тогда сортироваться будет правильно


 
dolmat   (2005-08-24 17:18) [2]

Можно не нулями а пробелами, красивее будет
 4
 4а
14


 
Gelax ©   (2005-08-24 17:21) [3]

А сортировка должна быть в базе или на клиенте?
Если на клиенте, то многие гриды позволяют
делать Custom сортировку.


 
Desdechado ©   (2005-08-25 12:23) [4]

select house from buildings
where AllTrim(house)<>""
order by strtointsafe(house)

это если есть соответствующие UDF


 
Domkrat ©   (2005-08-25 13:09) [5]

Я бы посоветовал перевести
Dom - integer
Korpus - varchar
Kvartira - integer
Bukva - varchar

Меньше будет путаницы в дальнейшем и сортировками и с дубликатами
типа 4a, 4A, 4 a


 
DrPass ©   (2005-08-25 22:18) [6]


> Desdechado ©   (25.08.05 12:23) [4]
> select house from buildings
> where AllTrim(house)<>""
> order by strtointsafe(house)

Так лучше не делать. В этом случае не работают индексы


 
Desdechado ©   (2005-08-26 10:52) [7]

2 DrPass
Зато нормальная сортировка ;))
А если выборка в 2-3 десятка строк, то разницы в скорости не ощутишь. А индексы будут работать другие - при дополнительном (не AllTrim) ограничении числа строк :)


 
afanasic   (2005-08-26 15:47) [8]

Сделай как посоветовал DrPass, только дополняй нулями уже в разделе ORDER BY - например при помощи функции...


 
Desdechado ©   (2005-08-26 16:25) [9]

2 afanasic
тогда тоже не будет индекс использоваться, против чего так восстал DrPass


 
Zacho ©   (2005-08-26 16:32) [10]

afanasic   (26.08.05 15:47) [8]

Кстати, а можно пример такого запроса с указанием конкретной версии сервера ?


 
carmen ©   (2005-08-26 17:41) [11]

Domkrat ©   (25.08.05 13:09) [5] так делал раньше, но как показівает практика есть дом 1/160а или 1а/56, тоже и с квартирами



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.10.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.014 c
1-1126773789
Makhanev A.S.
2005-09-15 12:43
2005.10.09
Как получить friendly user name?


14-1126822620
Германн
2005-09-16 02:17
2005.10.09
Формат файла Autorun.inf


9-1117533620
WandR
2005-05-31 14:00
2005.10.09
Пример воды на cg


14-1126986784
Piter
2005-09-17 23:53
2005.10.09
Красивые компоненты


1-1126672985
Roughneck
2005-09-14 08:43
2005.10.09
Как из TWebBrowser-а сохранить в файл загруженную картику





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский