You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle表格数据格式转换求助:将现有表数据转为指定格式

Oracle 数据表宽转长解决方案

针对你需要将多科目列的宽表转换为科目-分数行记录的需求,可通过Oracle的UNPIVOT语法快速实现,具体方案如下:

假设原表定义

假设你的原表名为STUDENT_SCORES,结构为:

  • STUDENT_NAME:学生姓名(字符串类型)
  • CHINESE:语文成绩(数值类型)
  • MATH:数学成绩(数值类型)
  • ENGLISH:英语成绩(数值类型)

转换SQL语句

SELECT student_name, subject, score
FROM student_scores
UNPIVOT (
    score FOR subject IN (
        CHINESE AS '语文',
        MATH AS '数学',
        ENGLISH AS '英语'
    )
)
ORDER BY student_name;

关键说明

  • UNPIVOT负责将原表中的多列科目数据拆解为多行记录
  • score是转换后存储分数的列名,subject是存储科目名称的列名
  • 括号内的列名 AS '科目别名'用于将原表列名映射为目标格式中的科目名称

若你的原表列名、表名或科目数量不同,只需调整SQL中对应的部分即可适配。

内容的提问来源于stack exchange,提问作者codeplex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 01:07:35