如果我们采取以下措施:
WITH tbl AS ( SELECT RAND() AS a ) SELECT * FROM tbl AS tbl1, tbl AS tbl2
为什么返回两个值而不是一个值?我认为CTE基本上在一开始就判断一次,然后在需要的地方使用?还是我对CTE持续性的理解不正确?或者不同数据库的实现是否不同?
与MySQL相比,MySQL返回一个持久值:
根据docs
BigQuery只具体化递归CTE的结果,但不具体化WITH子句中非递归CTE的结果.如果在查询中的多个位置引用了非递归CTE,则对每个引用执行一次CTE.
因此,您所看到的至少是BigQuery所期望的.
深入拆解Java虚拟机 -〔郑雨迪〕
10x程序员工作法 -〔郑晔〕
编译原理之美 -〔宫文学〕
TensorFlow 2项目进阶实战 -〔彭靖田〕
流程型组织15讲 -〔蒋伟良〕
Spring编程常见错误50例 -〔傅健〕
编程高手必学的内存知识 -〔海纳〕
Spring Cloud 微服务项目实战 -〔姚秋辰(姚半仙)〕
超级访谈:对话玉伯 -〔玉伯〕
互联网人的数字化企业生存指南 -〔沈欣〕
徐昊 · AI 时代的软件工程 -〔徐昊〕
云原生基础架构实战课 -〔潘野〕
无涯教程 - jQuery教程
无涯教程 - Numpy教程
无涯教程 - Docker教程
无涯教程 - Dart教程
无涯教程 - RSpec教程
无涯教程 - F#教程
无涯教程 - Java 正则教程
无涯教程 - Swift教程