如何在运行递归查询时打破Snowflake中的循环



我使用形式的CONNECT BY子句在snowflake中运行分层查询

SELECT
CONNECT_BY_ROOT field_a
, field_a
, SYS_CONNECT_BY_PATH (field_b, '/') AS path_
FROM my_table
START WITH field_a 
CONNECT BY  PRIOR  field_b =  field_a;

问题是我的表有一些循环,雪花在100次迭代后停止,或者永远无法完成查询。有没有像Oracle使用NOCYCLE子句那样打破循环?

Snowflake文档通常非常好。我建议你先去那里看看。CONNECT BY函数文档中包含了此特定主题:

https://docs.snowflake.com/en/sql-reference/constructs/connect-by.html#usage-票据

不幸的是,迭代次数的限制似乎是帮助您解决此问题的唯一方法,因为NOCYCLE目前不受支持。

最新更新