sql - 如何在 sql 查询的输出上添加过滤器以获得布尔值的答案?
问题描述
我有一张表,其中提到了 id 和该 id 的值。
id | value
101 | admin
102 | user
103 | test
104 | admin
105 | basic
我得到 2 个 id 的输入。现在,我必须检查这两个 id 是否具有相等的值?此 id 字段是其他表中的外键。
到目前为止,我试过这个:select id, value from roles where id in('101', '104')
但我希望输出为 - 不等于或等于或仅在相等时返回某个值,如果不相等则为空输出。
注意:值永远不会为空
我正在使用 oracle 12 和 node.js。
解决方案
这是一种方法。
select case when min(value) = max(value) then 'equal' else 'not equal' end
as compare_values
from roles
where id in ('101', '104')
;
即使您传递了三个或更多 id,这也有效 - 它只是告诉您所有值(对于所有 id)是否相等。
请注意,如果value
可以(您null
说实际数据中并非如此),则这些值将被忽略;如果所有非值都相等,则查询将返回。null
'equal'
null
推荐阅读
- php - 两个表值获取并比较并在选择框中显示比较值很好,但所有值也下拉我使用了 seletize js
- javascript - 如何从分配给变量的外部调用函数内部函数
- javascript - Javascript 将数组索引简化为参数
- python - 基于日期时间的 Holoviews 颜色和颜色条
- python-3.x - 使用 python 从 Brainsense 获取原始 EEG 数据
- php - 如何使用 HTML 标记中的 PHP 变量显示文件夹中的图像?
- kubernetes - Kubernetes - HPA 副本问题
- machine-learning - 基于文本的样式迁移
- sql - 仅当列值不包含任何特定前缀时才连接
- mysql - 如何在 Ubuntu OS 中远程访问 dockerised 数据库容器?