![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сложности сортировки [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 вариант: дополнить кадую строку слева нулями, так, чтобы все строки стали одинаковой ширины и отсоритровать