将它们分组实现了同一行值选取所有列,具有特定特征,同子数据我有下一个结构的表:通过在Oracle
Data structure:
| CONTRACT | CONNECTION | STATE |
| 1 | AAA | Y |
| 2 | AAA | Y |
| 3 | BBB | N |
| 4 | BBB | N |
| 5 | BBB | N |
| 6 | BBB | N |
| 7 | AAA | Y |
| 8 | CCC | Y |
| 9 | CCC | N |
| 10 | AAA | Y |
| 11 | CCC | N |
我想选择所有的行/数据考虑到由CONNECTION列定义的组为AAA,BBB和CCC组,查询必须仅选择具有值'N'的STATE列的所有行的组,但始终考虑该组的所有数据。 所以餐桌上的结果将是:
Result needed:
| CONTRACT | CONNECTION | STATE |
| 3 | BBB | N |
| 4 | BBB | N |
| 5 | BBB | N |
| 6 | BBB | N |
我一直在寻找的功能,如解码,存在等,但就是不明白怎么解决这个问题。
任何想法,我怎么可以为此写一个查询?
非常感谢你的所有。我试过_Felix Pamittan_答案,它工作正常。 – Albert
所有3种解决方案都应该可以工作,但[Giorgos Betsos'Answer](http://stackoverflow.com/a/36834763/1509264)只会扫描一次表格/索引,而使用“IN”或“NOT EXISTS”和相关的子-query将扫描子查询中和外部查询中的表/索引,并可能会执行更多的IO。如果您查看两个查询的解释计划,则可以自行计算表(或索引)扫描的数量,并可以查看每个解决方案的不同IO数量。 – MT0