首页 > 解决方案 > 如何从表中获取相关的源和目的地航班

问题描述

嗨,我的桌子包括:

source  destination
LA  BOS
LA  BOS
Seattle BOS
Bos LA
BOS Seattle
NY  Seattle
CA  LA
LA  CA
LA  Chicago
CA  BOS
BOS Seattle

我正在尝试获取我的来源是否包含波士顿或西雅图,以及我的目的地是否包含波士顿或西雅图。所以结果应该是这样的:

source  destination
Seattle BOS
BOS Seattle
BOS Seattle

我的查询不起作用:

select source,destination 
from dbo.flights
where source in ('BOS','Seattle') or destination in('BOS','Seattle')

标签: sqloracle

解决方案


您的查询应该可以工作,除非您有相同的源/目标值。显式方法是:

where (source = 'BOS' and destination = 'Seattle') or
      (source = 'Seattle' and destination = 'BOS')

这行得通吗?如果没有,您可能在字符串中有隐藏字符。

Oracle 还支持元组,因此您可以将其表示为:

where (source, destination) in ( ('BOS', 'Seattle'), ('Seattle','BOS') )

推荐阅读