db2 - 在 DB2 的一行中显示列值
问题描述
有没有办法在一行中显示一些列值,然后是剩余的列?我已经编写了以下查询,它提供了 3 行作为输出,但它应该只带来 1 个输出。
select asset.assetnum, asset.serialnum, assetspec.alnvalue , assetspec.assetattrid
from asset
left outer join assetspec on asset.assetnum = assetspec.assetnum
and asset.classstructureid = assetspec.classstructureid
where asset.assetnum='100' AND assetspec.ASSETATTRID IN ('XXX','YYY','ZZZ')
输出
ASSETNUM SERIALNUM ALNVALUE ASSETATTRID
100 123 A XXX
100 123 B YYY
100 123 C ZZZ
预期输出
ASSETNUM SERIALNUM XXX YYY ZZZ
100 123 A B C
解决方案
尝试这个:
with tab (ASSETNUM, SERIALNUM, ALNVALUE, ASSETATTRID) as (values
(100, 123, 'A', 'XXX')
, (100, 123, 'B', 'YYY')
, (100, 123, 'C', 'ZZZ')
)
select ASSETNUM, SERIALNUM
, max(case ASSETATTRID when 'XXX' then ALNVALUE end) as XXX
, max(case ASSETATTRID when 'YYY' then ALNVALUE end) as YYY
, max(case ASSETATTRID when 'ZZZ' then ALNVALUE end) as ZZZ
from tab
group by ASSETNUM, SERIALNUM;
推荐阅读
- c# - c# How to Intercept "Save Print Output As" dialog in Revit
- asp.net - X509 Store throws error when published on server, but not when running on localhost ASP.NET CORE 5
- macos - 无法在 neovim、Iterm2 中复制
- node.js - 调用函数返回 Promise
- php - PHP 超链接中的多个变量
- python - Python Seaborn Relplot 科学记数法
- python-3.x - 如何调整嵌入式饰品输出图的输出标题
- nginx - 错误:Dns-probe-finished-nxdomain-google-cloud-platform 和 nginx
- excel - 类型函数 Type List, M if then 语句
- r - 如何组合矩阵中名称部分包含 R 中相同字符串的行?