如:decode(ex1,ex2,ex3,ex4); [这里的ex1 ,ex3代表的是列,ex2代表的是列的值,ex4代表的自定义值]
表示:将ex1列里的值和ex2列的值进行比较,如果相同,则反回对应ex1某列的行的ex3列的值,不同则返回ex4 ,如果数据固定,ex4可以省略,if....exle语句 如果ex1的值=ex2则返回ex3,否则返回ex4
如:
select t.row_num , t.col_id , t.Col_Value
from brpms.tb_rpt_data t
所查询的数据为:
ROW_NUM COL_ID COL_VALUE
4 2 刘家峡水电厂
4 3 刘家1
4 4 刘家2
5 2 刘家3
5 3 刘家4
5 4 刘家5
期望的数据为根据COL_ID值相同分成N列如下所示:ABC代表234
ROW_NUM A B C
4 刘家峡水电厂 刘家1 刘家2
5 刘家3 刘家4 刘家5
语句为:
select
row_num,
max( decode(col_id,'2',col_value) ) as a ,
max( decode(col_id,'3',col_value) ) as b ,
max( decode(col_id,'4',col_value) ) as c
from brpms.tb_rpt_data
group by row_num
分享到:
相关推荐
### Oracle 行转列知识点详解 #### 一、Oracle 行转列概念及应用场景 在数据库操作中,经常需要对数据进行格式上的调整以便更好地分析或展示数据。其中,“行转列”是一种常见的数据处理方式,它指的是将原本存储...
**rowid** 也是Oracle数据库中的一个重要伪列,它表示表中每行记录的物理地址。与rownum不同的是,rowid对于表中的每一行都是唯一的,并且指向该行数据的实际存储位置。 ##### rowid的特点: 1. **唯一性**:rowid...
这里的`DUAL`是Oracle中的一个特殊表,它只包含一行一列。`LEVEL`是递归查询中的伪列,每次连接都会增加其值,直到达到指定的条件(这里是`)。 方法二:使用SYS_CONNECT_BY_PATH函数 另一种方法是利用`SYS_CONNECT...
这种方法对于行数固定的情况是可行的,但对于行数不确定的情况则不太适用。 ##### 方法二:`wmsys.wm_concat()` 从Oracle 10g 开始,`wmsys.wm_concat()` 函数提供了更简单的解决方案。这个函数可以自动将多行数据...
表是存放数据的基本单元,由固定的列数和可变的行数组成。而视图则提供了一种从一个或多个表中查看数据的逻辑方式,虽然不存储数据,但可以作为虚拟表来查询。 在数据类型方面,Oracle支持多种类型,如VARCHAR2用于...
- **带 GROUP BY 的计算**: 用于根据一个或多个列的值对行进行分组。 - **用 HAVING 来限制分组的计算**: 用于过滤分组结果。 **2.4 控制和格式化输出** - **用 ORDER BY 子句来对结果进行排序**: - `ORDER BY ...
6. ROWID:这是Oracle中的一个特殊数据类型,用于唯一标识表中的每一行,以二进制格式存储。 PL/SQL的块结构由BEGIN、DECLARE、BEGIN(过程部分)、EXCEPTION(异常处理部分)和END组成。DECLARE部分用于声明变量,...
* ROWNUM:是查询返回的结果集中行的序号,可以使用它来限制查询返回的行数。 4. 命名规则 Oracle 中的命名规则可以分为标准命名方式和非标准命名方式。 * 标准命名方式:以字符打头,长度为 30 个字符以内, ...
- **区别**: 与CHAR类型的固定长度不同。 以上是关于Oracle数据库系统作业的知识点详解,覆盖了数据库的物理和逻辑存储结构、日志机制、管理参数设置、启动关闭过程、SQL*PLUS命令、SQL查询基础以及PL/SQL编程等...
Oracle SQL*Loader是Oracle数据库提供的一个用于将外部数据加载到Oracle表中的工具。它是通过读取一个控制文件,然后加载指定的数据文件到数据库中。SQL*Loader支持多种数据加载方式,可以处理不同格式的数据文件,...
4. **减少行处理**:通过LIMIT和ROWNUM限制返回的行数,尤其是在联接和子查询中。这能减少内存占用和处理时间。 5. **合理使用JOIN操作**:避免在JOIN操作中使用笛卡尔积,尽量减少JOIN的数量。使用INNER JOIN代替...
为`FROM`子句中的表指定一个固定的顺序可以帮助ORACLE更好地优化查询计划。 **3-8、ROWID的使用** 使用`ROWID`可以快速定位到表中的特定行,提高查询效率。 **3-9、用ROWNUM判断纪录是否存在** 使用`ROWNUM`可以...
统计信息的准确性对CBO至关重要,这包括表的行数、块数、列的唯一性、索引的分布等。这些信息可以通过`ANALYZE`命令或者`DBMS_STATS`包收集。统计信息的更新可以帮助数据库更准确地估计执行计划的成本,从而选择更...
ROWID用于提供行的唯一物理地址,而ROWNUM则是查询返回结果集中行的序号,可以用于限制查询结果的行数。 数据定义语言(DDL)用于改变数据库结构,包括创建、修改和删除数据库对象。DDL命令中最常用的是创建表...
例如,一个常见的错误是ORA-01422,“Exact fetch returns more than requested number of rows”,这个错误表示SQL查询试图从结果集中获取固定数量的行,但实际返回的行数超过了预期。手册会解释这是由于SELECT语句...
`ROWNUM` 是Oracle系统为每一行返回的结果集自动分配的一个序号。这个序号是从1开始递增的,用于标识查询结果中的每一行记录。需要注意的是,`ROWNUM` 并不是表的一部分,而是在查询执行过程中动态生成的。 ##### 2...
Oracle数据库是一种广泛使用的大型关系型数据库管理系统(RDBMS),由甲骨文公司(Oracle Corporation)开发。它支持SQL作为其标准数据库语言,并提供了强大的数据库管理工具来帮助数据库管理员和开发人员执行各种...
数据定义语言Data Definition Language(DDL),用来建立数据库、数据对象和定义其列。例如:CREATE、DROP、ALTER等语句。 数据操作语言Data Manipulation Language(DML),用来插入、修改、删除、查询,可以...