2016-01-08 3 views
0

Как получить запись в порядке возрастанияКак возвращать только числовые значения, в порядке возрастания

Мои данные

101  
102  
w  
200  
11   
NO   
131   
2   
XYZ 

И я только хочу, чтобы вернуть номера, в порядке возрастания. Datatype является varchar

Я хочу написать запрос как:

SELECT rno FROM ml_entry 
WHERE (rno NOT LIKE '%[a-z]%') 
ORDER BY rno 

выше SQL создает ниже вывод:

101 
102 
11 
131 
154 
2 

Но это выход, я хочу:

2 
11 
101 
102 
131 
154 

Любые советы?

+0

преобразуйте столбец в числовое, когда вы его выберете. – durbnpoisn

+0

Да, именно поэтому я очистил этот комментарий и сделал новый. Что кто-то дал этот ответ. – durbnpoisn

ответ

0

Я думаю, что вы должны сделать что-то вроде этого:

SELECT rno, convert(rno, UNSIGNED INTEGER) as num 
FROM ml_entry WHERE (rno NOT LIKE '%[a-z]%') ORDER BY num ASC 

С rno является VARCHAR, ваш заказ будет лексической. Вам нужно преобразовать varchar в integer, а затем упорядочить его.

Адрес demo.

+0

Спасибо. Его работы правильны – Shilvant

Смежные вопросы