Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2015, 20:50   #1
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию Firebird. Сортировка поля string

Здравствуйте.
Есть таблица
ID - Integer (счетчик)
NUM - Varchar
NAIM - Varchar
в NUM хранятся номера с таким типом
Цитата:
1.1
1.1.1
1.1.2
...
1.1.10
1.1.11
...
если в запросе ставлю order by NUM, то получаю
Цитата:
...
1.1.1
1.1.10
1.1.11
...
1.1.2
...
подскажите, пожалуйста, как сделать "нормальную" сортировку или все же придется вводить поле типа integer и сортировать по нему?
Сразу скажу, сортировка по ID не подходит.
Спасибо.
tarakan1983 вне форума Ответить с цитированием
Старый 22.01.2015, 21:42   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
или все же придется вводить поле типа integer и сортировать по нему?
или вводить поле числовое и сортировать по нему (я бы этот вариант и выбрал),

либо (при сортировке) дополнять число слева нулями до выравнивани по максимальной длине (
т.е. сортировать
не 1.1, а 000001.000001
не 1.1.1 а 000001.000001.000001
не 1.1.10 а 000001.000001.000010

либо, писать свою сортировку, тогда, при сортировке, когда сравниваются строки, то переводить часть сравниваемых строк в числа и сравнивать именно числа.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.01.2015, 23:14   #3
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию

Цитата:
не 1.1, а 000001.000001
не 1.1.1 а 000001.000001.000001
не 1.1.10 а 000001.000001.000010
ТОЧНО!!!!
Спасибо за идею!
tarakan1983 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Совет по поводу вычисляемого поля в firebird Евгений_Магистр БД в Delphi 6 12.03.2013 00:41
Странное ограничение на имя поля в Firebird artemavd БД в Delphi 3 09.09.2012 15:12
Blob-поля в Firebird Liones БД в Delphi 1 23.11.2010 11:45
Почему не стоит именовать поля,таблицы и любые др. объекты Firebird рус. буквами? Alexei91 SQL, базы данных 15 13.08.2010 13:06
создание blob поля в Firebird Lokos БД в Delphi 0 12.04.2010 07:58