【发布时间】:2019-09-06 21:33:09
【问题描述】:
我在 Big Query 中有一个包含大量列的表。
该表有很多行,其中一些列值为 0/0.0 和 null。
例如
Row A B C D E F
1 "abc" 0 null "xyz" 0 0.0
2 "bcd" 1 5 "wed" 4 65.5
我只需要选择那些具有非零整数、浮点数和非空值的行。基本上,我只需要上表中的第 2 行
我知道我可以通过对每一列使用此查询来做到这一点
SELECT * FROM table WHERE (B IS NOT NULL AND B is !=0) AND
.
.
.
但是我有很多列,为每一列编写这样的查询会很困难。有没有更好的方法来处理这个问题?
【问题讨论】:
-
并非如此。扩展的
where子句可能是实现此逻辑的最简单方法。 -
您是否考虑过向您的 TABLE 添加一个 PERSISTED COMPUTED COLUMN,您可以将其命名为 IsAllZerosOrNull 并在您的 WHERE 条件下使用此列(WHERE IsAllZerosOrNull = 0)。您还可以将此列放在索引中以获得更快的结果
标签: sql google-cloud-platform google-bigquery