Dav*_*542 2 sql google-bigquery
有没有可能在 BigQuery 中执行类似的操作?
CREATE OR REPLACE FUNCTION `mydataset.variant_test.any_are_null`(val1 ANY TYPE, val2 ANY TYPE, ...) AS (
val1 IS NULL OR val2 IS NULL OR ...
);
Run Code Online (Sandbox Code Playgroud)
换句话说,我希望能够以简洁的方式检查是否有任何列/值为空,例如:
SELECT any_are_null(col1, col2, col3, col4), any_are_null(col1, col2)
Run Code Online (Sandbox Code Playgroud)
事先不知道参数的数量。我想能够压缩/解压缩这些值也是一种选择(例如...或*在某些语言中)。
我希望能够以简洁的方式检查是否有任何列/值为空
它可以通过使用内置的GREATEST来实现:
最伟大(X1,...,XN)
返回 X1,...,XN 中的最大值。如果任何参数为 NULL,则返回 NULL。
那么any_are_null实际上相当于:
SELECT GREATEST(col1, col2, col3, col4)
FROM tab;
Run Code Online (Sandbox Code Playgroud)
或者:
SELECT GREATEST(col1, col2, col3, col4) IS NULL
FROM tab;
SELECT
CASE WHEN GREATEST(col1, col2, col3, col4) IS NULL THEN 'At least one NULL value'
ELSE 'No NULLs detected'
END
FROM tab;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
389 次 |
| 最近记录: |