我想要查询的唯一结果,它应该只返回一个结果

时间:2018-08-21 19:17:54

标签: oracle union

好吧,让我尝试为我的问题做一个简短而又简单的解释。

我有两个查询。

查询1:-

select columnA,columnB,columnC,columnD...
from tablex,tabley ....
where (set of conditions)
GROUP BY .... (all non aggregate function columns)
ORDER BY ... (two columns lets say columnB and columnC)

请注意,columnA实际上是一个聚合函数。

查询2:-

select '',columnB,columnC,columnD...
from tablex,tabley ....
where (set of conditions)
GROUP BY .... (all non aggregate function columns)
ORDER BY ... (two columns lets say columnB and columnC)

请注意,A列故意保留为空白.B,C,D列与查询1相同,并且group by和order by子句相同。 查询2中的where条件将省略与列A的聚合有关的所有条件,因此该查询将始终返回具有相同值B,C,D的列“ A”的结果为空白。

我对以下两个查询进行了合并:-

QUERY2
UNION
QUERY1
GROUP BY...
ORDER BY...

现在这是一些预期结果:-

  1. 如果查询1中的任何where条件失败(如果发生此情况,则会发生这种情况 发现条件不存在的表之一 给定UNIQUE ID的数据),则查询1不返回任何结果 在这种情况下,将返回查询2的结果。这是完美的 精细。
    1. 查询1中的where条件都得到满足,并且我们返回了一行。在这种情况下,查询2也将返回一行,从而导致整个输出具有2行,其中一行的NULL值为A,然后是B,C,D,而另一行的NULL值为A,之后是同一行。 B,C,D值。基本上是重复的行,只有'A'值不同。

方案2是我遇到问题的地方。我想要一个结果,它在方案2中仅返回ONE ROW,即它应返回NON-NULL值为A的行并丢弃第二行。

有什么办法可以做到这一点?

我正在使用Oracle12c数据库。

1 个答案:

答案 0 :(得分:0)

这样的事情可以吗? [ ['This is a test string with the words game and move in it'], ['This is another test string, also containing game'] ] q1代表您当前的查询。

q2
相关问题