gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 23:00:49 24 4
gpt4 key购买 nike

我正在尝试有一个嵌套查询,我可以在其中选择和显示与所选环境相对应的不同工件的构建 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com