python-3.x 如何在Bigquery中处理特定异常?

x6yk4ghg  于 2023-03-13  发布在  Python
关注(0)|答案(2)|浏览(121)

我已经使用谷歌云SQL翻译工具.
如何转换Bigquery过程中的特定错误?
部件“当零除时,则
一些_输出:= 5000;'在Oracle SQL过程中尚未被GOOGLE SQL转换。
如何在Bigquery程序中添加这些错误条件?
如果Python中有任何解决方法,那也会很有帮助。
这段代码不需要“当其他人那么”,但我用它来举例说明,“当其他人那么”部分是由Bigquery转换的,但它跳过了特定的错误,如zero_divide或任何特定的错误,这可能是实际代码中需要的。

uajslkp6

uajslkp61#

我不知道BigQuery。
你张贴的代码(左手边)对我来说没有多大意义;为什么它计算quot,但是如果发生了什么,你不设置它的值,而是设置n_sales_out
无论如何:对于zero_divide,可以使用if-then-else

if tv_done = 0 then
     n_sales_out := 5000;   --> this handles is WHEN ZERO_DIVIDE
  else
     quot := n_sales / tv_done;
  end if;

对于when others,您必须弄清楚可能会出现什么错误。在简单的quot := n_sales / tv_done计算中,您预计还会出现什么错误?可能会出现什么错误(除了zero_divide之外)?

cbeh67ev

cbeh67ev2#

BigQuery确实具有过程异常处理功能,但在本例中,您似乎需要:

SELECT COALESCE(SAFE_DIVIDE(1, 0), 5000)

如果您尝试除以零,SAFE_DIVIDE将返回NULL,因此您可以将其与默认值合并。

相关问题