首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

关于字段名与字段值的联系关系

2013-03-28 
关于字段名与字段值的关联有一张横表A 值是这样的有一张表B 是这样的 表B里面的col_value 字段的值是对应

关于字段名与字段值的关联
有一张横表A 值是这样的
关于字段名与字段值的联系关系
有一张表B 是这样的
关于字段名与字段值的联系关系 

表B里面的col_value 字段的值是对应表A的字段名,我要的结果是表A的字段名下面的值跟表Bcol_value 字段的值相对应的关联在一起,比如表A col1 的值是‘满意’,表B col_value 里面的COL1 对应的是‘用户对我们服务是否满意’
我要的结果是‘用户对我们服务是否满意(满意)’
[解决办法]
开始以为能直接通过子查询完成  没想到直接方法  暂时想到下面这种.. 还要调试下 不知道对不 大致思路是这样的

下面b表2个字段简化了:c_v,p_n


create or replace procedure p1 is
Cursor cursor is select c_v from t_b order by c_v;
  sqlstr varchar2(4000);
begin
  for c_name in cursor loop 
  begin
  sqlstr := sqlstr + ' select c_v,p_n,(select '
[解决办法]
c_name.c_v
[解决办法]
' from t_a where t_b.c_v = '''
[解决办法]
c_name.c_v
[解决办法]
''') c1 from t_b where c_v = '''
[解决办法]
c_name.c_v
[解决办法]
''' union all ';
  end;
  end loop;
  --DBMS_OUTPUT.PUT_LINE(sqlstr); --打印sql
  EXECUTE IMMEDIATE (sqlstr);   --执行sql
end p1; 

[解决办法]
写个存储过程试试?

DECLARE

BEGIN

    ...
    FOR colList IN
    (SELECT * FROM col WHERE tname = 'OF_GW_JB'--这里写楼主你自己的查询语句
    )
    LOOP
      --return colList.colname 
[解决办法]
 '(' 
[解决办法]
 colList.value 
[解决办法]
 ')'
      --换电脑把ORACLE删除了。没办法试,呵呵
    END LOOP;
    ...

END;
[解决办法]
create  table test1 
(
COL1 varchar(50),
COL2 varchar(50),
COL3 varchar(50),
COL4 varchar(50),
COL5 varchar(50),
COL6 varchar(50),
COL7 varchar(50),
COL8 varchar(50)
);


insert into test1 select '1','2','3','4','5','6','7','8' from dual
select * from test1
Create  Table test1_reverse  
(col varchar(10),colvalue varchar(50)); 
select * from test1_reverse
select 
'insert into test1_reverse(col,colvalue) select '
------解决方案--------------------


 ''''
[解决办法]
column_name
[解决办法]
''','
[解决办法]
 column_name
[解决办法]
' from '
[解决办法]
 table_name
[解决办法]
';'
from user_tab_columns where table_name ='TEST1'

select * from test1_reverse

热点排行