sql - 在oracle中将数据列成行
问题描述
数据以表格格式显示在屏幕截图中。我想转换成所需的格式,如下所述。
表描述:
Table A
(branch_code, branch_name, branch_state, hol1, hol2, hol3....hol100)
预期产出
TAMF046 14/01/2021
TAMF046 15/01/2021
TAMF046 26/01/2021
KERF047 26/01/2021
KERF047 11/03/2021
KERF047 02/04/2021
解决方案
这正是UNPIVOT
为了
with t(id, c1, c2, c3) as (
select 1, 'a', 'b', 'c' from dual union all
select 2, 'aa', 'bb', 'cc' from dual
)
select *
from t
unpivot (
val
for col in (
c1 as 'A1',
c2 as 'A2',
c3 as 'A3'
)
)
val
是将包含来自 columns 的值的新列c1
c2
c3
。
col
是新列,它将包含来自的列的val
名称。
A1
A2
A3
是您要col
为每个未透视列填写的值(如果您对原始列名没问题,可以省略这些别名)。
推荐阅读
- google-apps-script - 当我将用户数据存储在其中一张工作表中时,发送新版本的 Google 表格工具的最佳方式是什么?
- python - 将图标移动到 QCheckBox 中文本的右侧
- postgresql - 在 PostgreSQL 中使用 start with nextval('old_seq') 创建序列
- javascript - 使用 css 或 html 在封闭的角材料手风琴面板之间添加填充
- json - 如何在 Apache Flink 中拆分 NodeObject 的数据
- spark-structured-streaming - 我们可以在 spark 结构化流批处理模式下从特定偏移量从 Kafka 获取数据吗
- javascript - 无法添加异步/等待,然后无法导出变量。任何帮助表示赞赏
- cmder - 如何在cmder中显示上一页?
- jupyter - 更改默认端口时无法运行 jupyterhub
- r - 每个索引时间间隔创建转换矩阵