我是在存储过程中使用,需求:
表 A ,字段 C111,C112,C121,C122,C131,C132..C191,C192, C211,C212,C221,C222..C291,C292,..C991,C992
这些字段的构成方式为 CAB1,CAB2 ,A和B 是由另外2张维表提供,就是说 A 和B的值目前最大到 9 ,
现在我需要 一条语句类似:
select sum(CA_1),sum(CA_2) from A ; 意思就是说 把表 A 中字段名 C111,C112,C121,C122,C131,C132..C191,C192 统一看着为 C1x1 ,C1x2 来处理, 并对这些字段值求和。
表 A ,字段 C111,C112,C121,C122,C131,C132..C191,C192, C211,C212,C221,C222..C291,C292,..C991,C992
这些字段的构成方式为 CAB1,CAB2 ,A和B 是由另外2张维表提供,就是说 A 和B的值目前最大到 9 ,
现在我需要 一条语句类似:
select sum(CA_1),sum(CA_2) from A ; 意思就是说 把表 A 中字段名 C111,C112,C121,C122,C131,C132..C191,C192 统一看着为 C1x1 ,C1x2 来处理, 并对这些字段值求和。
试一下通过字典表user_tab_columns来取得表字段来拼接SQL语句,是不是完成你想要的
把字段名 like C1%1 的都当成 C11
(动态拼接的SQL语句)
select sum(C111)+sum(C121)+...+sum(C191) from A;
select sum(C112)+sum(C122)+...+sum(C192) from A;如果有其他的方法,会更麻烦
loop 读维表1得到 字段名中的第二个字符 A
loop 字段视图 得到符合要求的原有字段名 CAx1,CAx2 ,并写语句求和 现在有个问题是 我要把最终的所有结果放到一个 游标 中,这样的话,我就不知道该怎么弄了