有没有办法在Google Fuision Tables Query上实现此功能?
...WHERE (('Field 1' = 'Value 1') OR ('Field 2' = 'Value 1'))
我知道在Google Fusion Tables上没有实现OR,但我想知道这个查询是否可行。感谢。
答案 0 :(得分:0)
对于相对较少的条件,您可以使用IN,如SQL reference中所述。所以在你的例子中
WHERE 'Field 1' IN ('Value 1', 'Value 2')
答案 1 :(得分:0)
实际上有一些解决方法可以解决缺少 OR 子句的问题。无论他们是否值得付出努力,我都会留给读者判断。
解决此问题的一种方法是根据 AND 子句表达 OR 子句。确切地说,有三个 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'
这三个查询的组合结果实际上是 OR 查询在融合表中可用时产生的结果。
另一种方法是执行 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来编写查询以获取完整的行数据。