回答

收藏

BigQuery IF字段存在然后

技术问答 技术问答 79 人阅读 | 0 人回复 | 2023-09-13

我正在对在特定时间范围内联合在一起的多个表运行查询。
  a# L# ^1 `8 @9 a1 U$ d过去,“模式”中不存在特定字段,但是在该时间范围的一半左右,该字段开始存在并开始填充数据。: ?2 z2 p5 v4 H- o& B
有没有办法有条件地选择它(如果存在),否则用一个值任意填充一个命名字段?, u+ Y( ]- Q- _5 }
像这样:4 k  A8 ^' _3 A- _
SELECT! ~4 |+ K) {2 e" f
  (CASE WHEN exists(my_field) THEN my_field ELSE "0" END) as "my_field"' z7 }) B" r0 D& G, A! a
FROM
5 M7 [5 a8 G! M. Z; G; G  z  u& Y5 Y! p                $ l' }6 i7 I+ e0 S
解决方案:1 b9 h! [2 p1 X0 ?
               
1 _/ i4 b2 h0 n9 Q* s3 q, b" ~) e& `$ t4 g/ C

/ P: e: f8 ^$ ^  G" S5 a; b9 f9 u) r                下面应该给你方向
3 Q9 t8 N( V. M9 w- s  G' xSELECT * FROM% P' O1 v/ @1 r+ q! ?: ?4 o0 J
(SELECT * FROM ),
/ h1 \; o2 N# A, x4 @5 e2 ?(SELECT * FROM )
, q  r" K% }( |; I假设原始表()中有a,b和c作为字段-如果您需要将缺失值从NULL更改为0,则可以使用上面的内容(见下文):
5 o& G" u4 t! p, gSELECT a, b, c, COALESCE(my_field, 0) as my_field
; t" N# g2 n% R7 Z, x# ?FROM
) z2 m6 i: p4 u(SELECT * FROM ),* d7 M$ [+ R* _% e) p' Q  k
(SELECT * FROM )
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则