数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

在oracle中进行列行转换


发布日期:2020年02月09日
 
在oracle中进行列行转换

固定列数的行列转换如

student subject grade

student 语文

student 数学

student 英语

student 语文

student 数学

student 英语

转换为

语文 数学 英语

student

student

语句如下

select studentsum(decode(subject语文 gradenull)) 语文

sum(decode(subject数学 gradenull)) 数学

sum(decode(subject英语 gradenull)) 英语

from table

group by student

不定列行列转换如

c c

转换为

我是谁

知道

这一类型的转换必须借助于PL/SQL来完成这里给一个例子

CREATE OR REPLACE FUNCTION get_c(tmp_c NUMBER)

RETURN VARCHAR

IS

用于返回值

Col_c VARCHAR();

BEGIN

FOR cur IN (SELECT c FROM t WHERE c=tmp_c) LOOP

Col_c := Col_c||curc;

END LOOP;

Col_c := rtrim(Col_c);

RETURN Col_c;

END;

上一篇:SQLserver链接服务器到Oracle

下一篇:网友经验:学习oracle快速入门随笔