sql - 用于将子行组合成单行视图的 SQL 查询
问题描述
我有活动父表和活动子表。我需要一个 sql 查询来将键作为列名,将值作为列值作为单个父行。表格和结果如图所示。键和值将动态变化。谢谢
活动表
Activityid Activity Time
10 Activity1 Time1
11 Activity2 Time2
12 Activity3 Time3
13 Activity4 Time4
活动表
Activityid key value
10 Name Mike
10 Account Saving
10 Type Current
11 Party ISG
11 loan 11233
如果我给 activityid 10,我应该得到如下结果
Activityid Activity Time Name Account Type
10 Activity1 Time1 Mike Saving Current
解决方案
这种算法称为“枢轴”。
您可以使用在 DB2 中的 DB2 中的链接动态数据透视 SQL 查询中描述的通用例程。
使用以下调用为您的案例获取所需的结果集:
CALL PIVOT
(
'
SELECT A.*, B.key, B.value
FROM Activity A
JOIN Activities B ON B.Activityid = A.Activityid
WHERE A.Activityid = 10
'
, 'Activityid, Activity, Time'
, 'key'
, 'value'
, 'max'
, 'SESSION.PIVOT'
, '-'
, ?, ?, ?
);
推荐阅读
- python - How to find string from a list of strings with a specific list of characters?
- c# - 在一个目录下列出多个订阅中的 Azure VM
- css - 仅将 CSS 伪元素添加到网格中心
- gradle - 编译 Gradle 期间的 PMD/Checkstyle 报告
- java - @Inject 在 Singleton 中不起作用,但在 API 类中起作用
- pandas - Make a plot by occurence of a col by hour of a second col
- php - Finding the best environment to test different PHP versions
- java - How to fix an error : 'Could not load library 'toscomm': no toscomm in java.library.path'?
- angular - 使用 Angular 和 ngu-carousel 动态生成的轮播幻灯片
- amazon-web-services - 在特定 EC2 实例中从 Git 执行 shell 脚本