`
awaitdeng
  • 浏览: 216533 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Oracle 存储过程实现不确定行列转置,不确定列就平均值

阅读更多
create or replace procedure QSizeByStructId(
v_struct_id in number
)
authid current_user
is
strsql varchar2(4000);
str_CarModel varchar2(500);
str_create varchar(4000);
begin
strsql:='select re2.STRUCT_ID,re2.SIZE_ID,re2.MEASURE_SIZE,re2.SIZE_NAME,re2.NOTE,re2.RECOMMEND_A,re2.CAR_ID,
decode(re1.image,1,re1.measure_value||'';''||re1.size_car_id,re1.measure_value) measure_value ,cm.car_name||'';''||cm.car_id,re1.measure_value averagebysizeid
              from size_car re1,car_model cm,
               (select sii.struct_id,sii.size_id,sii.measure_size,sii.size_name,sii.note,sii.recommend_a,cid.car_id from sizes sii,
                       (select sc.car_id from sizes si,size_car sc where si.size_id=sc.size_id and
                          si.struct_id= '||v_struct_id||' group by sc.car_id
                        ) cid where sii.struct_id=' ||v_struct_id|| ' order by cid.car_id,sii.size_id
               ) re2 where re1.size_id(+) = re2.size_id and re1.car_id(+) =
re2.car_id and re2.car_id=cm.car_id   order by re2.car_id,re2.size_id';

str_create :='insert into temp_table '||strsql ;
execute immediate str_create;
commit;
end QSizeByStructId;


create or replace procedure row_col(
v_struct_id in number,
v_carmodel in varchar,
v_cirsor out sys_refcursor
) is
sqlstr varchar2(4000);
cursor mycursor is select ', max(decode(car_name,'||chr(39)||car_name||chr(39)||',measure_value,0))'||'"'||car_name||'" ' c2 from
temp_table group by car_name;
r1 mycursor%rowtype;
begin
QSIZEBYSTRUCTID(v_struct_id);
sqlstr :='select size_id ,measure_size,size_name,note,recommend_a,round(avg(averageBYSIZEID),2)';
open mycursor;
       loop
         fetch mycursor into r1;        
         exit when mycursor%notfound;
         sqlstr:=sqlstr || r1.c2;
       
       end loop;
close mycursor;
sqlstr:=sqlstr||' from temp_table group by (size_id,measure_size,size_name,note,recommend_a ) order by size_id ';
dbms_output.put_line(sqlstr);
open v_cirsor for sqlstr;
sqlstr:='delete from temp_table';
execute immediate sqlstr;
commit;
end row_col;
分享到:
评论

相关推荐

    table 行列转置demo

    在行列转置的过程中,原始的`<tr>`元素会变成`<td>`,而`<th>`则可能变为`<td>`或者新的`<th>`,具体取决于原表格的结构。 接下来,jQuery是一个强大的JavaScript库,它简化了DOM操作、事件处理、动画和Ajax交互。...

    SQL 实现类似EXCEL行列转置

    SQL 实现类似 EXCEL 的行列转置功能 在数据库中,我们经常需要将数据从行转换为列,或者从列转换为行,这种操作称为行列转置。这种操作在 Excel 中非常常见,但是在 SQL 中实现类似的功能却需要一些技巧。下面我们...

    sql.txt 存储过程行列转置(oracle)

    oracle 存储过程,实现列表数据行转置成列显示table效果;用游标的方式实现;

    Excel2021行列转置的操作方法.docx

    确定选择性粘贴选项后,在原始单元格中依次生成数据,这样就实现了行列转置的目的。用户可以根据需要,选择将数据从行方向转换到列方向,或者从列方向转换到行方向。 四、注意事项 在进行行列转置时,需要注意以下...

    WPS如何对表格进行行列转置.docx

    使用选择性粘贴功能可以快速实现表格行列转置操作,且不需要安装任何插件或软件。但是,这种方法需要用户手动进行选择和粘贴操作,可能需要一些时间和精力。 方法二:使用 WPS 表格插件实现行列转置 在 WPS 高手初...

    oracle行转列较精典的解决方案

    在Oracle数据库管理与开发过程中,经常会遇到需要将数据表中的行数据转换为列数据的情况,这种操作被称为“行转列”或者“行列转换”。行列转换是数据分析、报表生成等场景中非常常见的需求之一。本文将详细介绍几种...

    C语言程序设计-编写程序,实现矩阵(3行3列)的转置(即行列互换) .c

    C语言程序设计-编写程序,实现矩阵(3行3列)的转置(即行列互换)

    C用数组实现稀疏矩阵的转置

    在C语言中,我们可以使用结构体来存储稀疏矩阵的三元组,结构体包含三个元素:行索引、列索引和对应的值。例如: ```c typedef struct { int row; int col; int value; } Triple; ``` 在转置稀疏矩阵时,我们...

    Excel2021教程:表格数据行列转置.docx

    * 粘贴数据并选择转置是实现行列转置的关键步骤。 * 查看转置后的数据是检查数据正确性和完整性的重要步骤。 应用场景: * 数据分析:在数据分析中,行列转置可以用于快速地将数据从行转换为列,或者从列转换为行...

    几个Excel vba示例文件. 包括行列转置,表格数据到数组,一维数组转二维,单列转多列等

    几个Excel vba示例文件. 包括行列转置,表格数据到数组,一维数组转二维数组,单列转多列等。均含示例数据,如: 250B的文本测试数据,晶振微调后的频率测试数据等。 另外还有EXCEL的常用命令语句精选。

    C#实现DataGridView控件行列互换的方法

    当需要对数据进行特殊处理,如行列互换时,就需要利用到控件的一些高级特性。本篇将详细介绍如何在C#中实现DataGridView控件的行列互换。 首先,我们需要创建一个Windows Forms应用程序,并在界面上放置两个...

    java实现矩阵转置

    本代码展示了矩阵的转置,通过提示,输入想要转置的矩阵,完成该矩阵的转置

    Excel中行列的转置.pdf

    5. **确认转置**:点击“确定”后,你会看到数据已经按照原区域的列变成了新的行,原区域的行变成了新的列,效果如图2所示。 转置功能极大地提高了工作效率,避免了手动逐个单元格复制粘贴的繁琐过程。此外,需要...

    数据结构课程设计,稀疏矩阵的转置

    而CSR则针对列操作,存储每一列的第一个非零元素的索引和所有列的非零值。这两种方式在存储空间上更为高效,同时提供了快速的行列遍历能力。 现在,让我们来探讨稀疏矩阵的转置。矩阵的转置是将矩阵的行变为列,列...

    C++数组实现矩阵的转置

    总的来说,使用C++的一维数组实现矩阵转置是一种高效且节省空间的方法,它利用了一维数组对内存的连续存储特性,使得我们可以快速地在行和列之间切换。通过这种方式,我们可以轻松地处理各种大小的矩阵转置问题。

    从Oracle 表格行列转置说起第1/2页

    在Oracle数据库中,进行表格的行列转置是一种常见的数据处理需求,特别是在生成报表或数据分析时。本篇文章将探讨如何利用DECODE函数实现这一操作。DECODE函数是Oracle SQL中的一个非常实用的工具,用于根据指定的...

    数据结构--数组与广义表-矩阵转置

    这包括创建一个新的非零元素数组,将原矩阵的行索引(现在转置后的列索引)和值存储到新数组中,并更新列头信息。同样,CCS转为CRS也是类似的逻辑,只是行和列的角色互换。 实际编程时,我们需要考虑边界条件、内存...

    矩阵的转置,求秩,求方阵行列式,求方阵的逆矩阵

    根据给定文件的信息,我们可以总结出以下几个主要的知识点:矩阵的转置、求秩、求方阵行列式、以及求方阵的逆矩阵。 ### 一、矩阵的转置 矩阵的转置是指将矩阵A的行变为列,列变为行得到的新矩阵。具体来说,如果...

    数据库行列转置参考.pdf

    在数据库管理中,数据的行列转置是一种常见的需求,特别是在数据分析和报表展示时。行列转置可以帮助我们将数据从一种格式转换为另一种格式,使得信息更易于理解和比较。本篇文章将详细探讨如何使用SQL来实现这一...

    用指针实现二维数组的转置

    总结起来,用指针实现二维数组的转置是一个涉及数组遍历和指针操作的过程。通过理解指针的工作原理,以及如何在内存中表示和访问二维数组,我们可以有效地编写出高效的转置算法。这个过程不仅锻炼了我们的逻辑思维...

Global site tag (gtag.js) - Google Analytics