Pra*_*nav 3 sql google-bigquery
如何在 BigQuery 中选择具有所有 NULL 值的数据列
A B C
NULL 1 NULL
NULL NULL NULL
NULL 2 NULL
NULL 3 NULL
Run Code Online (Sandbox Code Playgroud)
我想检索 A 列和 C 列。请您帮忙!
扩展我对米哈伊尔回答的评论,这就是我的想法。它不需要生成查询字符串,如果您有大量列,查询字符串可能会很长。它将每个列名的空值计数与表中的总行数进行比较,以确定是否应将列包含在结果中。
#standardSQL
WITH `project.dataset.table` AS (
SELECT NULL A, 1 B, NULL C UNION ALL
SELECT NULL, NULL, NULL UNION ALL
SELECT NULL, 2, NULL UNION ALL
SELECT NULL, 3, NULL
)
SELECT null_column
FROM `project.dataset.table` AS t,
UNNEST(REGEXP_EXTRACT_ALL(
TO_JSON_STRING(t),
r'\"([a-zA-Z0-9\_]+)\":null')
) AS null_column
GROUP BY null_column
HAVING COUNT(*) = (SELECT COUNT(*) FROM `project.dataset.table`);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2903 次 |
| 最近记录: |