我遇到INTEGER类型的问题。它过度流动,无法阻止它(因为它是64位无符号整数)。最糟糕的事情是它没有错误,只是变成负数
SELECT 9223372036854775807 + 1
是否有可能克服这个问题(也许谷歌计划引入新的int类型)?
答案 0 :(得分:2)
BigQuery将为SQL提供一个选项,以便在这种情况下引发错误(整数溢出,除零等)
答案 1 :(得分:0)
您可以检测到这些情况并使用例如NULL作为错误指示符,代价是更多输入。
类似的东西(假设你要加两个非负值):
select if(a + b >= a, a + b, NULL) from
( -- sample data
select 9223372036854775807 as a, 1 as b
)