Google bigquery BigQuery支持嵌套的CASE语句吗?
我有一个要求,看起来像:Google bigquery BigQuery支持嵌套的CASE语句吗?,google-bigquery,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 以此类推,其中“Y”和“Z”是列别名 我曾研究过如何使用CASE语句,但它似乎不支持嵌套CASE语句 我错过了什么明显的东西吗?或者有更好的方法来实现这一点吗?这个怎么样?快猜吧 SELECT
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
以此类推,其中“Y”和“Z”是列别名
我曾研究过如何使用CASE语句,但它似乎不支持嵌套CASE语句
我错过了什么明显的东西吗?或者有更好的方法来实现这一点吗?这个怎么样?快猜吧
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)
)
这个怎么样?快猜吧
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)
)