简单的Oracle Pivot行到列
我们有一个存储名称/值对的表,一个记录存储主机名,另一个用于存储端口号的记录。
我想用两个列返回一行,而不是返回两行。我可以按以下方式完成它,但是我有几列可以返回,我怀疑枢轴最终可能会产生更简单的SQL。
SELECT
(
SELECT
CCD.DISPL_CTGRY_CD AS EMAIL_HOST
FROM FDS_MAINT.CONFGRTN_CTGRY_DTL CCD
WHERE CCD.CONFGRTN_CTGRY_ID = 56
AND CCD.CONFGRTN_CTGRY_CD = 'HOST'
) HOST,
(
SELECT
CCD.DISPL_CTGRY_CD AS EMAIL_HOST
FROM FDS_MAINT.CONFGRTN_CTGRY_DTL CCD
WHERE CCD.CONFGRTN_CTGRY_ID = 56
AND CCD.CONFGRTN_CTGRY_CD = 'PORT'
) PORT
FROM DUAL
如何使用枢轴函数编写此SQL以获取以下结果?
主机 | 端口 |
---|---|
testapp.silver.com | 25 |
我正在使用Oracle 19。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是两种方法,鉴于我们不是选择具有不同值不同的其他列 -
首先(带有枢轴)
ampddle
-DB Fiddle 在这里。
These are two approaches, given we are not selecting other columns with different values -
First (with pivot) -
Second -
DB fiddle here.