BigQuery标准SQL:将值设置为正或负无穷大

BigQuery标准SQL:将值设置为正或负无穷大,sql,google-bigquery,Sql,Google Bigquery,我从中注意到,我们可以使用is\u INF()函数测试一个数字是否为“无穷大”: WITH demo_tbl AS ( SELECT 1 AS val UNION ALL SELECT 100 AS val ) SELECT val, IS_INF(val) as is_infinity FROM demo_tbl WITH demo_tbl AS ( SELECT 1 AS val UNION ALL SELECT +inf AS val -- <-- TH

我从中注意到,我们可以使用
is\u INF()
函数测试一个数字是否为“无穷大”:

WITH demo_tbl AS (
  SELECT 1 AS val UNION ALL
  SELECT 100 AS val
)

SELECT 
  val,
  IS_INF(val) as is_infinity
FROM demo_tbl
WITH demo_tbl AS (
  SELECT 1 AS val UNION ALL
  SELECT +inf AS val -- <-- THIS doesnt work
)

SELECT 
  val,
  IS_INF(val) as is_infinity
FROM demo_tbl
哪些产出:

+---+-----+-------------+
|   | val | is_infinity |
+---+-----+-------------+
| 0 |   1 | False       |
| 1 | 100 | False       |
+---+-----+-------------+
但是,是否可以使用某个常量值或关键字显式地将值设置为正无穷大或负无穷大

也许是这样的:

WITH demo_tbl AS (
  SELECT 1 AS val UNION ALL
  SELECT 100 AS val
)

SELECT 
  val,
  IS_INF(val) as is_infinity
FROM demo_tbl
WITH demo_tbl AS (
  SELECT 1 AS val UNION ALL
  SELECT +inf AS val -- <-- THIS doesnt work
)

SELECT 
  val,
  IS_INF(val) as is_infinity
FROM demo_tbl

我尽可能地搜索了文档,并用谷歌搜索了一下,但没有找到答案。

您可以使用
cast()创建值。

或:

埋在地下的是:

没有NaN或无穷大的文字表示,而是 以下不区分大小写的字符串可以显式转换为float:

  • “南”
  • “inf”或“+inf”
  • “-inf”

@JaredCS。问题被标记为BigQuery,数据库位于标题中。如果您有关于MySQL的问题,请将其作为新问题提问,并适当标记。
select is_inf(cast('inf' as float64))