oracle - 使用行中的列创建 Oracle 视图
问题描述
这是我的两张桌子:
表格1:
ID | Description
0 | test
1 | test1
表2:
ID | YEAR | VALUE
0 | 2019 | 1000
0 | 2020 | 2000
1 | 2019 | 3000
1 | 2020 | 4000
我想要这个视图(2019 和 2020 可能是自定义行):
ID | Description | 2019 | 2020
0 | test | 1000 | 2000
1 | test1 | 3000 | 4000
我知道如何连接这两个表,但不知道如何将 table2 中的值添加到该自定义列。谢谢
解决方案
使用结合聚合/透视的连接:
CREATE VIEW yourView AS
SELECT
t1.ID,
t1.Description,
MAX(CASE WHEN t2.YEAR = 2019 THEN t2.VALUE END) AS "2019",
MAX(CASE WHEN t2.YEAR = 2020 THEN t2.VALUE END) AS "2020"
FROM table1 t1
INNER JOIN table2 t2
ON t1.ID = t2.ID
GROUP BY
t1.ID,
t1.Description
ORDER BY
t1.ID;
演示
推荐阅读
- hibernate - 如何让 Spring 实例化自定义 ID 生成器而不是休眠?
- spring - 如何在 Spring 中发送具有多对多关系的 POST 请求?
- json - BigQuery 在几个 json 提取后变得筋疲力尽
- java - 如何查询postgres数据库以获取某些坐标10公里半径内的所有点
- python - 为什么第一个 ModelFormSet 不从 request.POST 中获取 id?
- shell - 如何在 Ubuntu 中使用 ripgrep 搜索 CSV 文件中的行
- spring-boot - 调试器、@SpringBootTest 和 Gradle
- angular - 如何使用 Angular 在 mat-header-cell 行中呈现动态数据
- python - 未按下键时Python Curses addstr() 错误
- c# - foreach循环迭代中的列不属于数据表