标准 SQL 中的调试函数

BigQuery 支持以下调试函数。

ERROR

ERROR(error_message)

说明

返回错误。error_message 参数为 STRING

BigQuery 处理 ERROR 的方式与处理可能导致错误的任何表达式相同:无针对计算顺序的特别保证。

返回数据类型

BigQuery 会根据上下文推断返回类型。

示例

在以下示例中,如果行的值与两个已定义值中的一个不匹配,则查询将返回一条错误消息。

SELECT
  CASE
    WHEN value = 'foo' THEN 'Value is foo.'
    WHEN value = 'bar' THEN 'Value is bar.'
    ELSE ERROR(concat('Found unexpected value: ', value))
  END AS new_value
FROM (
  SELECT 'foo' AS value UNION ALL
  SELECT 'bar' AS value UNION ALL
  SELECT 'baz' AS value);

Found unexpected value: baz

在以下示例中,BigQuery 可能会在 x > 0 条件之前或之后对 ERROR 函数求值,因为 BigQuery 通常不保证对 WHERE 子句条件之间进行排序,对于 ERROR 函数也不提供任何特别保证。

SELECT *
FROM (SELECT -1 AS x)
WHERE x > 0 AND ERROR('Example error');

在下一个示例中,WHERE 子句对 IF 条件求值,这能确保 BigQuery 仅在条件失败时对 ERROR 函数求值。

SELECT *
FROM (SELECT -1 AS x)
WHERE IF(x > 0, true, ERROR(FORMAT('Error: x must be positive but is %t', x)));'

Error: x must be positive but is -1
此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面