sql - 根据另一个表/列的值显示不同的表值
问题描述
我对 SQL 很陌生,通常可以用基本的东西找到自己的方式,但这次我有点卡住了......
我正在尝试检索(并显示)存储在 MSSQL DB 中的在线应用程序的不同配置。
我必须查看某个表和列的值(我们称之为“configName.id”),并且根据返回的值(负、正、NULL),我必须在不同的表中匹配它并显示其中一个同一列中的 3 个选项。
我尝试使用 CASE,但我不想显示 3 个不同的列;我想查询不同的表,并将结果显示在单个列中。显示的列名称应为“配置名称”。
在基本算法语言中,这将是:
if (configName.id > 0) -> 显示表“a”中的对应值
if (configName.id < 0) -> 将返回的值取反为正,显示表“b”中的对应值
else -> 显示“NULL”作为结果。
我的挑战是,无论从任何表返回的结果如何,我都必须将其显示在我的报告列“配置名称”下。
任何帮助将不胜感激,谢谢!
解决方案
会是这样的
select coalesce(a.value, b.value) as value
from configname left join
a
on a.id = configname.id and configname.id > 0 left join
b
on b.id = abs(configname.id) and configname.id < 0;
推荐阅读
- python - 如果下面的行重复,则使用其他列中的值,直到找到新值
- node.js - MongoDB在日期在表行的开始日期和结束日期之间时获取数据
- snowflake-cloud-data-platform - 如何在雪花中创建一个表,但防止在同一角色下删除它?
- python - 在类的加载方法中覆盖self
- c# - 使用泛型接口子类型解析类型
- javascript - 拿
作为整数
- python - 如果涉及 Inf,为什么稀疏矩阵的矩阵乘法与密集矩阵的乘法不同?
- java - spring-boot java中没有ssl客户端会话缓存
- jmeter - 在 JMeter 中使用 JSR223 后处理器检索请求数据信息
- javascript - 如何使用同步函数在节点 js 中获取目录的大小