Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > Отсортировать char данные по числовому значению.


Автор: Coder 13.8.2008, 10:21
Для хранения данных в колонке выбран тип char(20), но там хранятся самые обычные числа. 
Если сделать такой запрос:

>select numb from nv_c order by numb asc;

то вывод будет такой:

Код

numb
---------------
1
10
18
19
2
20
21


Вопрос в том, как отсортировать данные по возрастанию, учитывая их числовое значение?

Автор: Akina 13.8.2008, 11:26
Код

order by val(numb)
или аналог в конкретном диалекте (cast, strtodbl, etc.)

Автор: ama_kid 13.8.2008, 11:26
...order by INT(numb)...?

Автор: Coder 14.8.2008, 01:23
Не получается:

Код

mysql> select * from nv_cars order by INT(numb);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
 for the right syntax to use near 'INT(numb)' at line 1

mysql> select numb from nv_cars order by cast(numb);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
 for the right syntax to use near ')' at line 1

mysql> select numb from nv_cars order by cast(numb as integer);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
 for the right syntax to use near 'integer)' at line 1


База MySQL.

Автор: Akina 14.8.2008, 08:07
Ну русским же по белому пишут: 
Цитата
check the manual 

Код

select numb from nv_cars order by cast(numb as signed);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)