Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сложности сортировки [D6, WinXP]


WebErr ©   (2004-03-04 16:28:00) 

В общем так:
сортирую грид по полю стрингового типа, но с целыми компонентами, и, о чудо!, он сортирует в следующем порядке: 1, 10, 11, ..., 2, 20, 21, ... Слава богу разобрался, что тип у поля не целый. =)
Вопрос знатокам: как можно стринговое поле отсортировать как integer? Конструкции типа:

select *
from table t
order by t.docno as integer

не предлагать!!!


Digitman   (2004-03-04 18:09:00) [1]

select *
from table t
order by UDF_StrToInt(t.docno)


WebErr   (2004-03-04 17:54:00) [2]

Спасибо всем! :)


Zacho   (2004-03-04 17:06:00) [3]

Тогда или 1, или 2.
Я в таких случаях (когда нужно поде именно char или varchar, и при этом чтобы сортировка была как по integer) использую именно 2. Только дополняю не нулями, а пробелами, и делаю это в триггерах.


WebErr   (2004-03-04 16:51:00) [4]


> Digitman ©   (04.03.04 16:44) [4]
> что за СУБД ? конкретно ?

IB - Inter Base. Доступ через, например, IBQuery.


Digitman   (2004-03-04 16:44:00) [5]

что за СУБД ? конкретно ?


Zacho   (2004-03-04 16:38:00) [6]

3 вариант (разновидность 1-го) : написать свою процедуру сортировки. На самом деле, ничего сложного.


WebErr   (2004-03-04 16:35:00) [7]


> Тимохов ©   (04.03.04 16:30) [1]
>
> > Вопрос знатокам: как можно стринговое поле отсортировать
>
> > как integer?
>
> 1 вариант: перобразовать в integer и отсортировать
> 2 вариант: дополнить кадую строку слева нулями, так, чтобы
> все строки стали одинаковой ширины и отсоритровать

Первый вариант предпочтительней! :)
Мда... так и знал, что придётся всю чужую таблу перекорёжить во благо отечества!


Тимохов   (2004-03-04 16:30:00) [8]


> Вопрос знатокам: как можно стринговое поле отсортировать
> как integer?

1 вариант: перобразовать в integer и отсортировать
2 вариант: дополнить кадую строку слева нулями, так, чтобы все строки стали одинаковой ширины и отсоритровать


Наверх

Титульная страница Поиск, карта сайта Написать письмо