永发信息网

请教一个Oracle SQL语句的问题。问题具体描述如下

答案:3  悬赏:0  手机版
解决时间 2021-03-06 00:40
有两个表:表1的列名不明确,分别为C1,C2,C3,C4。表2矗贰避荷篆沽遍泰拨骏两列,一列为index,一列为colname,表2配置了表1中每一列代表什么,现在需要做一个视图,把表1的c1,c2,c3,c4分别替换成表2中配置的列名。 问题补充:
最佳答案
用动态语句试一下。
declare
a varchar2(1000);
b varchar2(50);
cursor cur is select colname ||' '||index||',' str from 表2;
begin
a:='';
b:='';
open cur;
loop
fetch矗贰避荷篆沽遍泰拨骏 str into b;
exit when cur%notfound;
a:=a||b;
end loop;
a:=substr(a,1,length(a)-1);--去掉最后一个逗号
close cur;
execute immediat 'create or replace view view_name as select '||a||' from 表1'
end;

没有测试,大概这样的思路是能实现的。
全部回答
用动态语句试一下。 declare a varchar2(1000); b varchar2(50); cursor cur is select colname ||' '||index||',' str from 表2; begin a:=''; b:=''; open cur; loop fetch str into b; exit when cur%notfound; a:=a||b; end loop; a:=substr(a,1,length(a)-1);--去掉最后一个逗号 close cur; execute immediat 'create or replace view view_name as select '||a||' from 表1' end; 没有测试,大概这样的思路是能实现的。
其实这个呢,我个人觉得吧,如果像这样,列不是很多。就在矗贰避荷篆沽遍泰拨骏创建视图的时候起个别名就好了,一一对应过去。。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
马竹坳我想知道这个在什么地方
为什么洗完澡都会想喝水
Give you love like the SUN as big
84版水浒宋江扮演者
中学教师资格证考试报哪个网校好
天热听什么歌感觉凉快?
绣购瑞都美容美体养生馆NO.62003418这个地址
国产三菱XT2N用什么编程软件
女孩子开自动挡的车好还是开手动挡好?
gta5做那个去天台雷达站的任务。路过别墅区看
因为一点小矛盾别人把我车给砸了,在4S店定损
“天空飞着一只凤凰”代表哪三个数字?
“寻物启事”和“寻物启示”有什么不一样
单位500套公租房有几个方案,需要怎么对比写
一个面包这个地址在什么地方,我要处理点事
推荐资讯
步步高手机vivo13怎么开双卡双待
《旋风少女》中饰演戚百草的是谁
北山7号在什么地方啊,我要过去处理事情
你使我明白使我明白,痛快也是爱的成分,痛苦
秋天的怀念行文思路是什么?
请问从北京飞到意大利米兰大概需要多长时间?
后来居上的前一句是什么?
分期付款的房子,房产证是不是要押在银行
县城汽车维修店一个月能卖多少机油
OPPOr9OTG功能怎么弄可以跟我说下吗
抚松第五小学在哪里啊,我有事要去这个地方
男子的第23对染色体XY,其中X染色体来自CA.父
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?