Как преобразовать Varchar в Double в sql?
у меня проблема с моим запросом, когда я пытался преобразовать поле varchar в double (числовое). У меня есть этот оператор sql:
SELECT fullName, CAST(totalBal as numeric(9,2) FROM client_info ORDER BY totalBal DESC
на самом деле я хочу, чтобы отобразить значения totalBal
в порядке убывания. Но поскольку это поле находится в varchar, resultset иногда ошибается. Это resultset, когда я пытался запросить с помощью этого оператора:
SELECT fullName, totalBal FROM client_info ORDER BY totalBal DESC
Resultset:
сортировка totalBal
неверно. Так Я решил преобразовать varchar в числовой, чтобы он мог быть отсортирован идеально. Есть идеи?
2 ответов
использовать DECIMAL()
или NUMERIC()
по мере того как они фиксированные номера точности и масштаба.
SELECT fullName,
CAST(totalBal as DECIMAL(9,2)) _totalBal
FROM client_info
ORDER BY _totalBal DESC
Это может быть более желательно, то есть использовать float вместо
SELECT fullName, CAST(totalBal as float) totalBal FROM client_info ORDER BY totalBal DESC