在oracle中,列转行的函数是“unpivot()”函数,该函数用于对表格数据进行列转行转换,语法为“unpivot(自定义列名 列的值 for 自定义列名 列名 in(列名))”。
本教程操作环境:Windows10系统、Oracle 11g版、Dell G3电脑。
oracle的列转行函数是unpivot()函数
示例如下:
原表
with temp as( select '四川省' nation ,'成都市' 第一,'绵阳市' 第二,'德阳市' 第三,'宜宾市' 第四 from dual union all select '湖北省' nation ,'武汉市' 第一,'宜昌市' 第二,'襄阳市' 第三,'' 第四 from dual ) select nation,name,title from temp unpivot (name for title in (第一,第二,第三,第四))t
说明:unpivot(自定义列名/*列的值*/ for 自定义列名/*列名*/ in(列名))
示例如下:
原数据如下:
而我想要得到的结果如下:
SQL:
select class_name, student_name, course_type, result, created_date from class_tmp unpivot(result for course_type in(chinese_result,math_result));
原数据的chinese_result列和math_result列的列名,将转换为新建列course_type的字段值,表示课种。
原数据的chinese_result列和math_result列的字段值,将转换为新建列result的字段值,表示分数。
推荐教程:《Oracle视频教程》
以上是oracle的列转行函数是什么的详细内容。更多信息请关注PHP中文网其他相关文章!