Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
т.е. сортировка текстовых чисел будет произведена в нормальном порядке, также исключена ошибка несоответствия типов в случае если номер документа будет содержать букву

Для этого достаточно написать нужную udf
SELECT *
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]
лучше так не делать, если потом этот датасет надо редактировать
лучше сортировать по CAST
select * 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.041 c
2-1143653503
tyo
2006-03-29 21:31
2006.04.16
асинхронный запуск StoredProc через TADOCommand


15-1143012008
vecna
2006-03-22 10:20
2006.04.16
Подскажите, где достать электронную документацию по FireBird?


2-1144234595
Alex_C
2006-04-05 14:56
2006.04.16
Как передать фокус чужому приложению?


3-1140592496
Александр_К
2006-02-22 10:14
2006.04.16
ODBC without BDE


2-1143655135
Quattro
2006-03-29 21:58
2006.04.16
Не понимаю где ошибся





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский