Вниз
Скачать: CL | DM;

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

← →
WebErr ©   (2004-03-04 16:28) [0]

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

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

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


← →
Тимохов ©   (2004-03-04 16:30) [1]


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

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


← →
WebErr ©   (2004-03-04 16:35) [2]


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

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


← →
Zacho ©   (2004-03-04 16:38) [3]

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


← →
Digitman ©   (2004-03-04 16:44) [4]

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


← →
WebErr ©   (2004-03-04 16:51) [5]


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

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


← →
Zacho ©   (2004-03-04 17:06) [6]

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


← →
WebErr ©   (2004-03-04 17:54) [7]

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


← →
Digitman ©   (2004-03-04 18:09) [8]

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



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.031 c
3-1078831907
Владий
2004-03-09 14:31
2004.04.04
Можно ли сделать, чтобы в PopUp меню добавлялись записи (+)


3-1078070701
Desdechado
2004-02-29 19:05
2004.04.04
обработка BLOB-поля при сохранении изменений в ClientDataSet


14-1077511275
Тумар
2004-02-23 07:41
2004.04.04
Как вас поздравили с 23 февраля?


1-1079337875
Leech
2004-03-15 11:04
2004.04.04
Архивирование данных


1-1079424777
ikivio
2004-03-16 11:12
2004.04.04
SysErrorMessage(GetLastError) - range Check Error




   Наверх