oracle - Unpivot coumns into rows - PL/SQL
问题描述
我有下表 - 有很多行 -
ID A_1 B_1 A_2 B_2 A_3 B_3
-- ---- --- --- ---- --- ---
1 0 0 0 0 0 0
2 1 0 0 0 0 0
我需要得到以下输出表 -
行将是 ID、A_1、B_1 等等。
ID A B
--- -- --
1 0 0
1 0 0
1 0 0
2 1 0
2 0 0
2 0 0
我尝试了 union, unpivot - 每个 ID 我只得到一行而不是三行。
我怎样才能做到这一点?
解决方案
您必须使用 Union all 来包含重复项:
结果:
SELECT ID, A_1 A, B_1 B FROM TABLE1
UNION ALL
SELECT ID, A_2, B_2 FROM TABLE1
UNION ALL
SELECT ID, A_3, B_3 FROM TABLE1 ORDER BY ID;
推荐阅读
- jenkins - 使用主动选择反应参考参数构建项目
- java - Gson 解析响应以获取通用类
- android - BattlegroundMobile之类的应用如何在没有存储权限的情况下访问obb?
- vba - WebBrowser 控件适用于 Office 2010,但不适用于 Office 365 / 2016
- html - HTML CSS 悬停位置未与容器对齐
- redhat - Linux中的SWAP和Virtual mmeory有什么区别
- sql - 变更数据捕获 - 监控单列
- qt - QNetworkReply 正在读取数据时,QMainWindow 关闭按钮处于非活动状态
- python - 如何在 Selenium Webdriver 上为 python 中的 chrome 设置 luminati 代理?
- swift - Swift:面向协议的方法期间出错。错误:无法将“I.Job”类型的返回表达式转换为“ActualJob”类型