![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
У меня есть таблица dbf, в ней три поля, все поля типа CHARACTER (20). Но дело в том что в определенном поле содержатся только числовые значения, а мне нужно сделать сортировку по этому полю, но так как оно типа CHAR, а не NUMBER, то запрос вида "select * from table order by pole desc" не работает как надо. Эта таблица автоматически загружается с диска, все в программе работает через sql запросы. Как мне можно преобразовать поле, чтобы работала сортировка?
|
|
#2
|
|||
|
|||
|
попробуй:
Код:
select * from table order by binary(pole) desc |
|
#3
|
|||
|
|||
|
Нет, не работает.
|
|
#4
|
||||
|
||||
|
Код:
procedure TForm1.Button2Click(Sender: TObject); begin Query1.SQL.Text:='select * from table_a order by field1 desc'; Query1.Open; end; |
|
#5
|
|||
|
|||
|
friz, у меня вообще-то подобный запрос как раз и не работает, точнее он работает но не сортирует числа в числовом поле по убыванию. Мне предоставили таблицу dbf в которой все поля имеют тип CHARACTER(20). И т.к. сортируемое поле типа char а не number, то и сортирует запрос криво. а мне нужно как-то преобразовать поле.
|
|
#6
|
|||
|
|||
|
Если попробовать так:
Код:
select *, cast(pole as number) as sortpole from table order by sortpole desc или так: select * from table order by cast(pole as number) desc |