Столбец Конвертация (Приведение) для выполнения операций в Oracle - PullRequest
0 голосов
/ 07 мая 2020

Вот с чем у меня проблемы. У меня есть таблица, в которой у меня есть вес столбца, данные в этом столбце - varchar2, например: 60 кг.

Когда я пытаюсь выполнить условие WHERE с просьбой получить все, что меньше 60 кг, оно не дайте мне желаемый результат.

Я пытался преобразовать, используя to_number, но он не работает и выдает ошибку «Недопустимый номер». Я также пытался сократить кг с помощью SUBSTR и преобразовать, но тоже не работает.

Есть предложения?

enter image description here

Заранее спасибо.

1 Ответ

1 голос
/ 07 мая 2020

Вы можете извлечь первые цифры и преобразовать их в число:

select to_number(regexp_substr(weight, '^[0-9]*'))
from t;

Регулярное выражение начинается с начала строки (^) и извлекает цифры. * означает любое количество цифр. Сопоставление регулярного выражения по умолчанию является «жадным», что означает, что оно будет сопоставлять столько цифр в строке, сколько есть.

Если у вас есть десятичные разряды или отрицательные значения, это может быть немного сложнее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...