换句话说,每次都会产生select查询顺序,所以这2总是产生唯一的值:
从bigquery-public-data.crypto_ethereum.balances
限制中选择* 10偏移量100
从bigquery-public-data.crypto_ethereum.balances
限制10偏移量2000中选择*
当然,假设表有唯一的值.我只是好奇,如果不使用"order“子句,表总是具有确定性/结果性,或者如果结果确实是随机返回的话,结果会重复吗?10倍!
发布于 2020-04-29 14:46:58
,我只是好奇,如果不使用"order“子句,表总是确定性的/结果性的,或者如果结果确实是随机返回的,结果会重复吗?
不是的。SQL表表示无序的行集。行没有固有的顺序。除非指定了order by
子句,否则无法保证同一查询的两个后续执行将产生一个独立的结果。数据库可以自由地按自己喜欢的顺序返回行。
因此,带有行限制子句但没有order by
子句的查询的结果并不是确定性的。一定要在这些查询中添加一个order by
子句,否则迟早会遇到一些异常和难以调试的行为。
https://stackoverflow.com/questions/61512975
复制相似问题