Преобразовать varchar в int вместе с подстрокой в ​​sql - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь отсортировать результаты по порядку номеров улиц, и поскольку номер улицы varchar, они не располагаются в числовом порядке, когда я использую следующий запрос:

SELECT CONCAT(given," ", middle," ", surname) AS People_who_live_in_Queen_Street, SUBSTRING(street, 1, 2) AS Street_Number
FROM people
WHERE street LIKE '%queen%'
ORDER BY Street_Number

У меня есть попытался использовать CAST

SELECT CONCAT(given," ", middle," ", surname) AS People_who_live_in_Queen_Street, CAST(SUBSTRING(street, 1, 2) AS INT) AS Street_Number
FROM people
WHERE street LIKE '%queen%'
ORDER BY Street_Number

, и это не работает. Была такая же проблема, когда я попробовал CONVERT. Не уверен, где я иду не так. Любая помощь очень ценится.

1 Ответ

0 голосов
/ 20 марта 2020

Вам нужно конвертировать в число. Возможно, что-то вроде этого:

ORDER BY CAST(Street_Number as DECIMAL(10, 2))
...