-
ORACLE列转行的问题!10
表1
备件名 仓库名 数量1 数量2
B1 C1 1 2
B2 C2 1 2
B1 C3 1 2
B3 C1 1 2
B2 C2 1 2
B3 C3 1 2
变成表
备件名 C1 C2 C3
B1 数量1,数量2 数量1,数量2 数量1,数量2
B2 数量1,数量2 数量1,数量2 数量1,数量2
B3 数量1,数量2 数量1,数量2 数量1,数量2
实际效果是这样的,但是这个是显示效果,SQL查询出来只要求让备件名全部唯一,仓库名唯一且作为列头就可以了,
最好是不用存储过程的,由SQL语句搞定,如果实在没办法,我再用存储过程
问题补充:<div class="quote_title">suixinsuoyu12519 写道</div><div class="quote_div">select 备件名,sum(case when 仓库名='c1' then concat(数量1,',',数量2) end) C1, <br />sum(case when 仓库名='c2' then concat(数量1,',',数量2) end) C2, <br /> sum(case when 仓库名='c3' then concat(数量1,',',数量2) end) C3 <br /> <br />from yourtable <br />group by 备件名; <br />你试试吧 我这里没有Oracle环境,在mysql测试的;在Oracle里面应该也可以使用decode 但是mysql不支持此函数,所以没试验!!</div> <br /> <br /> <br /> <br /> <br />不仅仅只有3个仓库C1,C2,C3,仓库的个数是0到N,备件的个数也是0到N! <br />2010年2月23日 11:30
2个答案 按时间排序 按投票排序
-
select 备件名,sum(case when 仓库名='c1' then concat(数量1,',',数量2) end) C1,
sum(case when 仓库名='c2' then concat(数量1,',',数量2) end) C2,
sum(case when 仓库名='c3' then concat(数量1,',',数量2) end) C3
from yourtable
group by 备件名;
你试试吧 我这里没有Oracle环境,在mysql测试的;在Oracle里面应该也可以使用decode 但是mysql不支持此函数,所以没试验!!2010年2月23日 17:04
相关推荐
Oracle 列转行问题解决方案 Oracle 数据库中,列转行问题是一个非常传统的话题。在这个问题中,我们需要将行数据转换成不同的列表示,或者将不同的列数据写到同一列的不同行上。这种问题在实际应用中非常常见,如将...
总结来说,Oracle中的列转行可以通过多种方法实现,包括传统的`DECODE`或`CASE`结合子查询,以及从11g版本开始提供的`PIVOT`功能。选择哪种方法取决于具体的需求和数据规模,以及对性能的考虑。在处理大数据量时,应...
DECODE函数在处理列转行的问题时,尤其适用于将多列数据合并到一行中,使得数据展示更加简洁明了。下面我们将详细讲解DECODE函数的使用方法以及如何在列转行操作中应用它。 DECODE函数的基本语法如下: ```sql ...
oracle行转列,列转行的例子
oracle中实现列转行实例,有表的创建,数据的插入,查询的sql
SELECT TRIM(',' FROM SYS.STRAGG(A_NAME||NVL2(A_NAME,',','')))as nams FROM A_TEMP
在Oracle数据库中,行转列(也称为数据透视)和列转行(unpivot)是SQL查询中用于数据转换的高级功能。从Oracle 11g版本开始,引入了PIVOT和UNPIVOT关键字,以支持显式的查询转换,即从行数据转换为列数据,或从列...
在Oracle Developer中,"列转行小工具"是一种实用功能,它主要用于处理数据库表中的数据,将多列数据转换为单列数据,通常涉及到的是数据的行列转换操作。这种操作在处理复杂的数据分析、报表生成或者接口对接时非常...
- T-SQL_经典行专列、列转行,分页及存储过程.doc:T-SQL是SQL Server的扩展,但其中的行转列和分页概念与Oracle相似。在Oracle中,可以使用ROW_NUMBER()函数配合PARTITION BY和ORDER BY来实现分页查询。 - oracle_...
因此用到了逗号分隔列转行的方法。目前该方法只适合在oracle数据库中使用。该方法只需要sql语句就可以实现列转行。 下面给出该方法的示例: select a,b,c from(with test as (select ‘aaa’ a,’bbb’ b,’1,2,3...
理解日常工作中常用到的多列分组, 如【统计不同部门、 不同职位的平均工资】和 行转列 包含例子 和 个人理解分析
1. 列转行 列转行是指将多个列数据合并成一个列数据。例如,有一个表t_col_row,其中包含多个列c1、c2、c3,需要将这些列数据合并成一个列数据。可以使用UNION ALL、MODEL和COLLECTION等方法来实现列转行。 使用...
sql 行转列 与列转行,oracle ,msssql等,详细数据库操作方法,各种例子,欢迎大家学习。、~
Oracle中的WM_CONCAT函数是一个非标准的聚合函数,主要用于将多行数据合并成单行,以逗号分隔的形式返回。这个函数在处理特定的数据汇总和报告需求时非常有用,尤其是在你需要将某个列的多个值合并成一个字符串时。...
DB2 SQL 通过函数(CONCAT/POSSTR/LOCATE)实现行转列,列转行 可以按照标点把多列转换为一行,多行转换为一列
本文将详细介绍如何在Oracle中实现行转列(即行列转换的一种)以及列转行的操作,分别通过使用`decode`函数和`insert...select`语句来实现。 ### 一、使用`decode`函数进行“行转列” #### 1. **背景与需求** 在...