将Oracle查询转换为雪花

时间:2020-03-04 03:33:39

标签: snowflake-cloud-data-platform

将查询从Oracle转换为雪花时,我遇到了一个问题。你能帮忙吗?

示例Oracle查询: 替换(REGEXP_SUBSTR(col_name,'(。*?)([[[:space:]] >> [[:: space:]] | $)',1,1),'>>','')作为测试< / p>

1 个答案:

答案 0 :(得分:1)

在处理(。*?)正则表达式部分时,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;

这些结果应与Oracle的REGEXP_SUBSTR给出相同的结果(“ test1”)。