Каков оптимальный SQL для получения нижеприведенного вывода? - PullRequest
0 голосов
/ 22 мая 2019

Входной столбец имеет целочисленные значения, разделенные запятыми, например

Пример ввода 1)

1,2,200000,2345323,1200000

Пример вывода 1)

1,2,2345323

Пример ввода 2)

546^515,400000,657180,3

Пример вывода 2)

546^515, 657180,3

Выходная строка должна отфильтровывать все целые числа, которые имеют "5" завершающие нули.

1 Ответ

0 голосов
/ 22 мая 2019

Вычеркнуть числа с пятью нулями просто с regexp_replace().Но, похоже, нам также нужно привести в порядок запятые.В этом решении есть еще regexp_replace() для перехвата ,,, когда вырезанное число находится внутри строки, и простое trim() для того, когда число является первым или последним в строке:

with cte as (
    select '1,2,200000,2345323,1200000' as str from dual union all
    select '546^515,400000,657180,3' as str from dual union all
    select '546^515,400000,1200000,657180,3' as str from dual union all
    select '54000000,400000,1200000,657180,300000000' as str from dual
    )
select trim(both ',' from regexp_replace(regexp_replace(str, '([0-9]+)00000', null),',(,+)',',')) as new_str 
from cte
/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...