我正在对在特定时间范围内联合在一起的多个表运行查询。
过去,“模式”中不存在特定字段,但是在该时间范围的一半左右,该字段开始存在并开始填充数据。
有没有办法有条件地选择它(如果存在),否则用一个值任意填充一个命名字段?
像这样:
SELECT (CASE WHEN exists(my_field) THEN my_field ELSE "0" END) as "my_field" FROM <somewhere>
下面应该给你方向
SELECT * FROM (SELECT * FROM <somewhere w/o my_field>), (SELECT * FROM <somewhere with my_field>)
假设原始表()中有a,b和c作为字段-如果您需要将缺失值从NULL更改为0,则可以使用上面的内容(见下文):
SELECT a, b, c, COALESCE(my_field, 0) as my_field FROM (SELECT * FROM <somewhere w/o my_field>), (SELECT * FROM <somewhere with my_field>)