![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как отсортировать данные??? [D5, IB5.x]
Sirus © (2002-11-12 07:04:00)Привет Мастера...
Есть вопрос: Как можно отсортировать результат запроса по полю текстового типа ( VARCHAR)???
Есть поле типа VARCHAR там встречаются данные числового типа...
Так вот при сортировке типа ORDER BY FIELDполучаю что-то типа ( 1, 10, 2, 25, 3, 4, 5, 51) и т.д. то есть цифры сортируются как строки... а мне нужна сортировка типа ( 1, 2, 3, 4, 5, 10, 25, 51)... Как можно организовать???
Reindeer Moss Eater (2002-11-12 11:59:00) [1]function StrValue(sz: PChar):integer; cdecl; export;
var aStr:string; i:integer;
begin
aStr:=StrPas(sz);
for i:=Length(aStr) downto 1 do if not (aStr[i] in ["0".."9"]) then Delete(aStr,i,1);
Result:=StrToIntDef(aStr,0);
end;
Select StrValue(Поле_номера_Квартиры), T.* From MyTable T
Order By 1
Reindeer Moss Eater (2002-11-12 11:49:00) [2]http://www.ibase.ru/devinfo/udf_ok.htm
Sirus (2002-11-12 11:47:00) [3]>Reindeer Moss Eater (12.11.02 08:40)
>Или написать UDF
А как его написать и использовать??? Хотя бы как его использовать???
Reindeer Moss Eater (2002-11-12 08:40:00) [4]Или написать UDF
Andriano (2002-11-12 08:35:00) [5]Придётся добавлять незначущие нули перед числами (Это на стороне сервера). Или делать локальную сортировку на стороне клиента.
Sirus (2002-11-12 08:28:00) [6]Поле хранит данные квартир... тип VARCHAR(4)
ну в смыслу там встречаются данные типа 121 и 121А...
При использовании CAST ошибки будут???
VAleksey (2002-11-12 07:57:00) [7]если данные только "встречаются"то никак
Alexandr (2002-11-12 07:32:00) [8]select cast(tvoyvarchar as integer)
from....
order by 1