Конвертировать Oracle запрос в снежинку - PullRequest
1 голос
/ 04 марта 2020

Возникла проблема при преобразовании запроса из Oracle в снежинку. Не могли бы вы помочь.

Пример Oracle запрос: заменить (REGEXP_SUBSTR (col_name, '(. *?) ([[: Space:]] >> [[: space:]] | $) ', 1,1),' >> ',' ') как тест

1 Ответ

1 голос
/ 04 марта 2020

Кажется, что Snowflake ведет себя по-разному при обработке (. *?) Части вашего регулярного выражения. В качестве обходного пути вы можете использовать [^>] * или \ w + вместо (. *?):

SELECT
replace(REGEXP_SUBSTR( 'test1 >> test2 >> test3','([^>]*)([[:space:]]>>[[:space:]]|$)', 1,1 ) , ' >> ','') as test;

SELECT
replace(REGEXP_SUBSTR( 'test1 >> test2 >> test3','\\w+([[:space:]]>>[[:space:]]|$)', 1,1) , ' >> ','') as test;

Они должны давать тот же результат ("test1") с Oracle REGEXP_SUBSTR .

...