Текущий архив: 2006.04.16;
Скачать: CL | DM;
Вниз
Order by по символьному полю Найти похожие ветки
← →
Kot_ (2006-02-18 12:48) [0]есть запрос
select * from table
order by dogovor
где dogovor - символьное поле и при выполнение запроса выводится список 1,10,11,2,3,32,33
Если возможность отсортировать по данному полю так, как буд-то бы оно является числовым?
← →
unknown © (2006-02-18 12:56) [1]select cast(t.dogovor as integer),t.* from table t
order by 1
Но это при условии, что dogovor содержит только числа.
← →
Anatoly Podgoretsky © (2006-02-18 12:56) [2]Так правильно сортирует, в лексографическом порядке.
Хочешь в числовом подай на вход числа.
← →
Kot_ (2006-02-18 12:59) [3]Спасибо, буду пробовать
← →
Lexer © (2006-02-18 13:11) [4]Как вариант можно добить номер например нолями до опрелеленной длины слева.
пример:
00001
00002
00010
т.е. сортировка текстовых чисел будет произведена в нормальном порядке, также исключена ошибка несоответствия типов в случае если номер документа будет содержать букву
Для этого достаточно написать нужную udfSELECT *
FROM TABLE
ORDER BY F_PADL(dogovor, 50, "0")
Если нужен код f_padl, то могу сбросить.
← →
Desdechado © (2006-02-18 15:10) [5]unknown © (18.02.06 12:56) [1]
лучше так не делать, если потом этот датасет надо редактировать
лучше сортировать по CASTselect * from table
order by CAST( dogovor AS INTEGER)
но это не на всех СУБД работает и, естественно, только для данных из чисел без букв
Lexer © (18.02.06 13:11) [4]
> можно добить номер например нолями
можно, но медленно, да и только в IB/FB
← →
Lexer © (2006-02-18 15:15) [6]to kot: если у тебя в базе номер храниться только ввиде чисел, тогда измени тип поля на integer, иначе даже не пытайся пробовать CAST(dogovor AS INTEGER).
← →
Kot_ (2006-02-19 14:59) [7]
> если у тебя в базе номер храниться только ввиде чисел
слишком много баз придется менять и код переписывать
← →
Anatoly Podgoretsky © (2006-02-19 15:02) [8]Desdechado © (18.02.06 15:10) [5]
Почему, разве она уникальная?
← →
Desdechado © (2006-02-19 15:07) [9]Anatoly Podgoretsky © (19.02.06 15:02) [8]
что "почему"?
Страницы: 1 вся ветка
Текущий архив: 2006.04.16;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.044 c