JW2*_*JW2 3 database google-bigquery google-cloud-platform
这个行为让我有点惊讶。
当您在 CTE 中生成 uuid(以生成行 id 等)并在将来引用它时,您会发现它发生了变化。似乎generate_uuid()被调用了两次而不是一次。有人知道为什么 BigQuery 会出现这种情况吗?这叫什么?
我用来generate_uuid()创建一个row_id,并发现在我最终的连接中,因此没有发生任何匹配。我发现解决这个问题的最佳方法是从第一个 CTE 创建一个表,将 uuid 固定到位以供将来使用。
仍然好奇更多地了解这背后的原因和原因。
with _first as (
select generate_uuid() as row_id
)
,_second as (
select * from _first
)
select row_id from _first
union all
select row_id from _second
Run Code Online (Sandbox Code Playgroud)
很想知道更多关于这背后的原因和内容
这是设计使然:
WITH 子句未实现。将所有查询放在WITH 子句中然后运行UNION ALL 是对WITH 子句的滥用。
如果一个查询出现在多个WITH子句中,it executes in each clause.
您可以在文档中看到 -不要将WITH子句视为准备好的语句
| 归档时间: |
|
| 查看次数: |
1762 次 |
| 最近记录: |