2016-10-17 5 views
2

Kurz: Gibt es eine Möglichkeit, in BQ-Feldern abzufragen, die nicht existieren, Nullen für diese Felder zu erhalten?Bigquery Wenn das Feld existiert

Ich habe fast das gleiche Problem als BigQuery IF field exists THEN aber in mir, manchmal kann meine APIs abfragen Tabellen, in denen es nicht einige bestimmte Felder (historische Tabellen) und dieser Ansatz scheitert, weil es eine Tabelle mit diesem Feld muss:

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>) 

gibt es eine Möglichkeit, wie etwas zu tun ist:

SELECT IFEXISTS(a, NULL) as the-field 
FROM <somewhere w/o my_field> 

Antwort

2

Lassen Sie uns Ihre Tabelle übernehmen hat Felder x und y nur!
So unten Abfrage perfekt

SELECT x, y FROM YourTable 

arbeiten aber unter einem wegen nicht vorhandenen Feld z

SELECT x, y, z FROM YourTable 

Die Art und Weise, diese zu Adresse wird scheitern wie unten

SELECT x, y, COALESCE(z, 0) as z 
FROM 
(SELECT * FROM YourTable), 
(SELECT true AS fake, NULL as z) 
WHERE fake IS NULL 
Verwandte Themen