sql - 如何从表中获取相关的源和目的地航班
问题描述
嗨,我的桌子包括:
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')
解决方案
您的查询应该可以工作,除非您有相同的源/目标值。显式方法是:
where (source = 'BOS' and destination = 'Seattle') or
(source = 'Seattle' and destination = 'BOS')
这行得通吗?如果没有,您可能在字符串中有隐藏字符。
Oracle 还支持元组,因此您可以将其表示为:
where (source, destination) in ( ('BOS', 'Seattle'), ('Seattle','BOS') )
推荐阅读
- sql - 在 Rails 中按关联相关属性排序数据?
- ios - SwiftUI:自定义导航栏中缺少侧边栏图标
- html - 为什么 ::before 在 css 类中不起作用?
- android - colorPrimary 与 android: 或没有在themes.xml 中的区别
- subscription - 具体5 8.5.x 的付费内容/订阅/会员资格插件
- c++ - 为什么 C++ 中向量的最小值和最大值的语法是这样的?
- github-actions - GitHub Actions:使用来自同一组织中另一个 repo 的私有 github npm 包
- python - ffmpeg 无法识别用于解密 m3u8 的本地密钥文件
- ruby-on-rails - 用于自动递增列的 Fluentd sql 输出插件配置
- sql - MS Access SQL 从分组数据中选择 MAX