0

これを Google Fuision Tables Query に実装する方法はありますか?

...WHERE (('Field 1' =  'Value 1') OR ('Field 2' = 'Value 1'))

OR が Google Fusion Tables に実装されていないことは承知していますが、このクエリが可能かどうかを知りたいです。ありがとう。

4

2 に答える 2

0

実際には、OR句がないことに対処する回避策がいくつかあります。努力する価値があるかどうかは、読者の判断にお任せします。

これに取り組む 1 つの方法は、OR句をAND句で表現することです。正確には3 つのAND句で、次のような 3 つの異なるフュージョン テーブル クエリになります。

SELECT * FROM <table_id> WHERE 'Field 1' = 'Value 1' AND 'Field 2' = 'Value 1'

SELECT * FROM <table_id> WHERE 'Field 1' = 'Value 1' AND 'Field 2' NOT EQUAL TO 'Value 1'

SELECT * FROM <table_id> WHERE 'Field 1' NOT EQUAL TO 'Value 1' AND 'Field 2' = 'Value 1'

これら 3 つのクエリを組み合わせた結果は、事実上、融合テーブルで使用できる場合にORクエリがもたらす結果になります。

もう 1 つのアプローチは、次のようにOR句 (別名NOR ) の逆を実行することです。

SELECT ROWID FROM <table_id> WHERE 'Field 1' NOT EQUAL TO 'Value 1' AND 'Field 2' NOT EQUAL TO 'Value 1'

このクエリは、OR 句によって破棄された行の ROWID を返します。したがって、テーブル内のすべての ROWID のリストを取得し、NOR クエリによって生成されたそれらの ID を削除すると、OR クエリによって生成された行 ID が残ることになります。これらの ROWID を使用してクエリを記述し、完全な行データを取得できます。

于 2016-07-21T03:26:52.340 に答える
0

SQL リファレンスで説明されているように、比較的少数の条件の場合は、IN を使用できます。あなたの例では、それは

WHERE 'Field 1' IN ('Value 1', 'Value 2')
于 2013-10-31T23:03:13.590 に答える