Я не знал, как искать ответ:
select orderid, REGEXP_REPLACE (
orderid,
'^0+(.)',
'\1'
) as new_order_id
from orders
where length('new_order_id') < 6
Это ничего не возвращает. Но я знаю, что данные есть. Если я сделаю:
select orderid, REGEXP_REPLACE (
orderid,
'^0+(.)',
'\1'
) as new_order_id
from orders
order by order_id asc
Я получаю идентификаторы заказа, такие как 1, 2, 3 ...
Так, как я могу вернуть те, которые меньше шести? Выполняет ли операция where мои возвращенные данные regexp_replace после возвращения набора данных. Oracle, если это имеет значение.
Кроме того, я считаю, что мой запрос выбивает все ведущие нули и заменяет его ничем. Не уверен, что означает \ 1. Да, я скопировал это. Я думал, что это ничего не значит, чего я и хочу. Просто обрежьте ведущие нули.
Спасибо.