java - 单表SQL中如何将2列对应的数据显示到第三列和第四列?

标签 java mysql sql oracle

我正在尝试有一个嵌套查询,我可以在其中选择和显示与所选环境相对应的不同工件的构建 ID。这是架构。

Environment Name  Artifact Name     Build Id    
UAT 2           aecacs.ear          147634-CBOL-9.0.1-APP-Team-Build-243    
UAT 2           gbcr.ear            147634-CBOL-9.0.1-APP-Team-Build-244    
UAT 2           esms.ear            147634-CBOL-9.0.1-APP-Team-Build-23    
UAT 2           framework.ear       147634-CBOL-9.0.1-APP-Team-Build-156    
SIT 2           ecr.ear             147634-CBOL-9.0.1-APP-Team-Build-198    
SIT 2           aecacs.ear          147634-CBOL-9.0.1-APP-Team-Build-33    
SIT 2           gbcr.ear            147634-CBOL-9.0.1-APP-Team-Build-56    
SIT 2           ci.ear              147634-CBOL-9.0.1-APP-Team-Build-87    
SIT 2           co.ear              147634-CBOL-9.0.1-APP-Team-Build-22    
DIT 2           aecacs.ear          147634-CBOL-9.0.1-APP-Team-Build-158    
DIT 2           esms.ear    
DIT 2           build.ear

我希望所有工件名称都列在第一列中。

在第二列中,“Build Id”对应于环境 UAT2A 和该工件

在第三列 Build Id 对应于该工件和环境 SIT2。

如果不存在对应于环境和工件名称的构建 ID,它应该显示“未找到”

输出:

ARTIFCAT NAME         BUILD ID(UAT 2)                              BUILD ID (SIT 1)

aecacs.ear        147634-CBOL-9.0.1-APP-Team-Build-243  147634-CBOL-9.0.1-APP-Team-Build-33

gbcr.ear          147634-CBOL-9.0.1-APP-Team-Build-244  147634-CBOL-9.0.1-APP-Team-Build-56

esms.ear          147634-CBOL-9.0.1-APP-Team-Build-23   not found

framework.ear

ecr.ear

ci.ear

co.ear

请帮忙。

最佳答案

最简单的方法是使用两个左外部自连接。

找不到build_id时使用Coalesce显示not found。

SELECT DISTINCT a.Name, COALESCE(a1.build_id,'Not Found'), COALESCE(a2.buildId,'Not Found')
FROM Artifact a
LEFT OUTER JOIN Artifact a1 ON a1.Name = a.Name
LEFT OUTER JOIN Artifact a2 ON a2.Name = a.Name
WHERE a1.Environment = 'UAT 2'
AND a2.Environment = 'SIT 2'

关于java - 单表SQL中如何将2列对应的数据显示到第三列和第四列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24118882/

相关文章:

java - 关系运算符在哪些方面不遵守浮点值的 compareTo 契约?

java - 为什么在 json 中看不到 "keys"?

php - 什么更有效?在php代码中进行sql查询还是将数据发送到php代码?

php - 插入数据库时​​出现sql语法错误codeigniter

mysql - SQL - 当用户表单输入搜索条件包含撇号时,数据库搜索会出错

sql - 从具有 XML 内容的字段创建 View (SQL)

java - 如何修复 "double printing when I clicked twice on the pretty dialog button"

mysql - 将变量添加到 char *

mysql - 提高 LEFT JOIN/GROUP BY 的性能

java - 保存 EMF 模型