BigQuery是否支持嵌套的CASE语句?

Gra*_*ley 1 google-bigquery

我有一个看起来像这样的要求:

If X <0.01 then Y=1, Z=2
If X>=0.01 then
  If <another_expression> then Y=3, Z=4
  If <another_expression> then Y=5, Z=6
Run Code Online (Sandbox Code Playgroud)

依此类推,其中'Y'和'Z'是列别名.

我看过使用CASE语句,但它似乎不支持嵌套的 CASE语句.

我错过了一些明显的东西吗 或者有更好的方法来实现它吗?

Mik*_*ant 5

这个怎么样?只是快速猜测.

SELECT
  X,
  REGEXP_EXTRACT(result, r'(\d+),') AS Y,
  REGEXP_EXTRACT(result, r',(\d+)') AS Z
FROM (
  SELECT 
  X,
  CASE WHEN X <0.01 THEN '1,2'
  WHEN X >= 0.01 THEN (
    CASE WHEN X < 0.1 THEN '3,4'
    WHEN X >= 0.1 THEN '5,6' END
  ) END AS result
  FROM (SELECT 0.2 AS X)
)
Run Code Online (Sandbox Code Playgroud)