永发信息网

如何把ORACLE数据表的列变成行

答案:2  悬赏:70  手机版
解决时间 2021-01-29 05:39
如何把ORACLE数据表的列变成行
最佳答案
固定列数的行列转换如
student subject grade
---------------------------
student1 语文 80
student1 数学 70
student1 英语 60
student2 语文 90
student2 数学 80
student2 英语 100
转换为
语文 数学 英语
student1 80 70 60
student2 90 80 100
语句如下:
select student,sum(decode(subject,'语文', grade,null)) "语文",
sum(decode(subject,'数学', grade,null)) "数学",
sum(decode(subject,'英语', grade,null)) "英语"
from table
group by student
2、不定列行列转换如
c1 c2
--------------
1 我
1 是
1 谁
2 知
2 道
3 不
......
转换为
1 我是谁
2 知道
3 不
这一类型的转换必须借助于PL/SQL来完成,这里给一个例子
CREATE OR REPLACe FUNCTION get_c2(tmp_c1 NUMBER)
RETURN VARCHAR2
IS
--用于返回值
Col_c2 VARCHAr2(4000);
BEGIN
FOR cur IN (SELECT c2 FROM t WHERe c1=tmp_c1) LOOP
Col_c2 := Col_c2||cur.c2;
END LOOP;
Col_c2 := rtrim(Col_c2,1);
RETURN Col_c2;
&
全部回答
dos 环境下使用sql*loader命令 加载 使用其它数据库的数据转移工具 oracle 企业管理器中的数据加载功能 具体的技术实现 一、dos 环境下加载 1、首先,服务器端的侦听服务必须已经开启。 测试方法:dos 下输入 c:\\>sqlplus username/password@servicename 2、然后使用 oracle 的 sqlldr 命令进行数据的导入 前期条件 1) oracle 数据库端必须已经建好了需要导入的数据表的结构 2) 一个数据源文件 下面例子中为制表符分隔的文本文件 model.txt ,为excel 表中导出的 3) 手工编辑一个xxx.ctl 的控制文件 4) 命令行加载数据 如下实例: 以下文件缺省放到c:\\ 下,如果不是,就需要指明全路径 1. 命令控制文件 input.ctl 内容 命令 说明 load data 1、控制文件标识 infile 'model.txt' 2、要输入的数据文件名为test.txt append into table system.塔位属性表 3、向表test中追加记录 fields terminated by x'09' 4、指定分隔符,字段终止于x'09',是一个制表符(tab) (编号,名称,大小) 5、定义列对应表中顺序 控制文件中指定插入数据的方式关键字 insert,为缺省方式,在数据装载开始时要求表为空 append,在表中追加新记录 replace,删除旧记录,替换成新装载的记录 truncate,同上 在 dos 窗口下使用 sql*loader 命令实现数据的导入 c:\\>sqlldr userid=system/manager@ servicename control=input.ctl 默认日志文件名为:input.log 默认坏记录文件为:input.bad 二、使用其它数据库转移工具 以下以sql server 导入导出向导为例 1、在数据的导入导出向导中设置数据源服务器,实例中选择数据源选择sql server 2、然后指定要导入的oracle 数据源 3、需要配置oracle 的属性信息 需要注意的是,登录数据库的用户信息即为数据导入之后的方案名,即导入之后的sql server 中的表在oracle 中标志名为 username.表名 以下按照提示即可,可以完全导入sql server 中的数据表和视图,也可以使用查询语句返回你要选择的列或者行。 三、oracle 企业管理器中的数据加载功能 登录oracle 的控制台界面,针对单独的数据表可以使用数据加载工具 中间需要指定控制文件等,同dos 加载一致,不再重复
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
休闲空间茶室地址在什么地方,想过去办事
从公平和正义的角度,谈谈上述不良行为的危害?
晕死 谁能告诉我温州鹿城区申通的电话号码
公司办的银行卡离职的时候没有拿回来没事吧
懒怯的意思是什么啊?知道的请说下!
0)的左右焦点,过点F1且垂直于实轴的直线与双
独角兽高达出自哪个高达系列
虹桥茶坊地址在什么地方,想过去办事
信阳珠江村镇银行地址好找么,我有些事要过去
车前草有一种叶子有毛的能吃吗
linux下怎么使用pointgrey
招行信用卡提完额度为什么额度不变?
如何理解技术的本质与特征?
收怜的意思是什么啊?知道的请说下!
临沂搬家公司哪家最好
推荐资讯
属龙的人纹个猴子会怎么样?
中石油固始第三十八加油站地址有知道的么?有
下列项目中,属于所有者权益项目的是()。A.
yy语音里的北北怎么找不到了
新能量zx7-200全铜芯手提小型家用逆变直流手
丛茌平到齐河表白寺怎么走
安逸宾馆(阿坝州九寨沟县)地址在什么地方,我
袋装豆沙陷还能怎么做
强奋的意思是什么啊?知道的请说下!
2008年9月查出包括“三鹿”牌奶粉在内的多数
煮好的蚕蛹有一点咸味可以喂绣眼鸟吗
米赚连连看得的大米怎么兑换
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?