sql - 比较同一表中的两列,反之亦然
问题描述
我有一张桌子(数字)。有两列( InitialNumber 和 FinalNumber)
我需要一个查询,例如如果初始数字 (10) 作为最终值 (20) 那么初始数字 (20) 应该具有最终值 (10),想知道表中的所有不同行。在关于数据中,我想要一个不同的数字列表
解决方案
这是使用的通用方法exists
:
select *
from numbers n
where exists (
select 1
from numbers n2
where (n.init = n2.final and (n.final != n2.init or n.final is null))
or (n2.init = n.final and (n2.final != n.init or n2.final is null))
)
这里的问题在于这些null
值,因为它们无法正确评估=
- 因此是or
检查的原因。根据您的数据库,这可能会被压缩。
推荐阅读
- python - 在类内的python 3.0中构造列表列表
- node.js - NodeJS/ExpressJS/passport-saml ADFS SingleLogout 实现
- vue.js - 从远程托管文件将变量导入vue文件
- python-3.x - 如何在 IPython.embed() 会话中访问全局变量
- python - 如何向抓取网站的 Python 脚本添加循环
- apache-kafka - 配置并发布数据到 NifiKafkaConsumer
- laravel - Vuejs 和 laravel -NaN 值?
- jitsi - 启用身份验证后 Jitsi “无法连接到会议”
- ubuntu - 带有 Apache2 和 Flask 的 GCP VM 存在 Python 包问题
- laravel - 在 Laravel 中创建动态路由