如何删除两列中的重复值并仅在Postgresql中获取特定值

时间:2016-12-06 13:01:15

标签: sql postgresql

我必须编写一个查询,其中我必须在两列上添加条件,条件类似于第一列aquire_nation和target_nation中的第二列。我必须在target_naton中找到所有在aquire_nation或德国都有德国的记录,但是不应该获取在两列中都有德国的记录。 这是我的表

enter image description here

因为它在图像中显示,所以只应提取最后四个记录。前两行不应该获取。

3 个答案:

答案 0 :(得分:2)

另一种方式

Select * from yourtable 
Where 'germany' in (aquire_nation,target_nation)
and NOT(aquire_nation = 'germany' and target_nation = 'germany')

答案 1 :(得分:1)

这是where子句中相对简单的逻辑:

where 'germany' in (acquire_nation, target_nation) and
      acquire_nation <> target_nation

答案 2 :(得分:0)

只需尝试一下。

Select * from yourtable 
where acquire_nation <> target_nation