数据库中的表是由列和行构成的一个二维表。一般列在任何数据库中都是有限的数量,而行的变化较大,如果表很大,行的数量可能大上千万行。同一列的不同行可能有不同的值,而且不是预先定义的。
例:住房公积金报表置换实例:
1.各个单位在本地经办行进行开户,开户就是将单位的基本信息和职工信息的进行登记;
2.每月各个单位的会计到经办行交缴本单位的所有职工的住房公积金,系统记录有每个职工的交缴明细并在每条记录上记录有经办行的代码;
3.每月、季、半年及年终都要求将经办行 变为“列”给出个月的明细报表:
经办行:城西区 城东区
月份:
2001.01 xxxx1.xx xxxxx2.xx
2001.02 xxxx3.xx xxxxx4.xx
。 。 。 。 。 。
原来的数据顺序是:
城西区2001.01 xxxxx1.xx
城东区2001.01 xxxxx2.xx
城西区2001.02 xxxxx3.xx
城东区2001.02 xxxxx4.xx
住房公积金系统记录职工的每月交缴名细的pay_lst表结构是:
bank_code varchar2(6)NOT NULL, -- 经办行代码
acc_no varchar2(15) not null, -- 单位代码(单位帐号)
emp_acc_no varchar2(20) not null, -- 职工帐号
tran_date date not null, -- 交缴日期
tran_val Number(7,2) not null, -- 交缴额
sys_date date default sysdate, --系统日期
oper_id varchar2(10) --操作员代码
这样的表结构,一般按照将经办行作为行(row)进行统计是很容易的,
但是如果希望将经办行变为列(column)这样的格式来输出就有困难。
如果用DECODE函数来处理则变得很简单:
我们创建一个视图来对目前的pay_lst表进行查询。
将经办行代码变为一些具体的经办行名称即可:
CREATE OR REPLACE VIEW bank_date_lst AS
Select to_char(tran_date,’yyyy.mm’),
SUM( DECODE ( bank_code,’001’, tran_val,0 )) 城西区,
SUM( DECODE ( bank_code,’002’, tran_val,0 )) 城南区,
SUM( DECODE ( bank_code,’003’, tran_val,0 )) 城东区
FROM pay_lst
GROUP BY to_char(tran_date,’yyyy.mm’);
建立视图后,可直接对该视图进行查询就可按照列显示出结果。
分享到:
相关推荐
此外,DECODE 和 NVL 函数也可以用于实现表的转置。例如,在住房公积金报表置换实例中,可以使用 DECODE 函数将经办行的代码转换为相应的描述信息,然后使用 NVL 函数将 NULL 值转换为指定的值,以便进行进一步的...
我们可以使用 DECODE 函数来实现表的转置,例如: select sid, serial#, username, decode(command, 0, 'None', 2, 'Insert ', 3, 'Select ', 6, 'Update', 7, 'Delete ', 8, 'Drop', 'Other ') ...
但是,这种转置方式的好处是表结构稳定,当有新的DAY值时,只需要添加新的行,而不需要修改表结构。 在Oracle中,除了DECODE函数,还有其他方法可以进行行列转置,如使用PIVOT功能。不过,DECODE函数因其灵活性和...
"ldpc_decode.m"文件很可能包含了一个非二进制LDPC码的解码算法实现,可能使用了著名的BP(Belief Propagation)或其它迭代解码算法,如Min-Sum、Sum-Product算法。 解码算法是LDPC码的核心部分。在非二进制环境中...
通过使用`decode`函数结合`sum`聚合函数可以实现行转列的功能。`decode`函数可以根据不同的条件返回不同的值,当用于行列转换时,可以通过设置不同的条件来区分不同的列名,从而达到转换的目的。 ##### 2. 示例:将...
### Matlab 下 RLE 算法的简单实现 #### 一、引言 在数据处理与存储领域,压缩算法的应用非常广泛。其中一种常见的压缩算法是游程长度编码(Run-Length Encoding, RLE)。该算法主要用于图像数据的压缩,特别适用...
这通常通过乘法运算实现,即信息位向量与校验矩阵的转置相乘,得到编码后的码字。 3. **调制**:在本案例中,采用的是二进制相移键控(BPSK)调制。BPSK是最简单的数字调制方式,通过改变载波信号的相位来传输二...
至于表的行列转换,也称为“表转置”,通常涉及`PIVOT`操作。在Oracle数据库中,可以使用`PIVOT`关键字将行转换为列,但不是所有数据库系统都支持。在不支持`PIVOT`的情况下,可以使用`GROUP BY`和`CASE WHEN`结合`...
最后,对于列数不固定的情况,即所谓的交叉表行列转置,这是相对复杂的情况,通常需要编写PL/SQL过程。以一个电话统计表为例,包含类别的字段class1,日期字段calldate和呼叫次数字段callcount。我们需要将不同类别...
§8.1.3 DECODE实现表的转置 189 §8.2 关于访问远程数据库 192 §8.2.1 数据库链接 192 §8.2.2 使用同义词获得本地透明 193 §8.2.3 在视图中使用user伪列 194 §8.2.4 使用COPY功能 195 §8.2.5 管理Oracle名称...
6. DECODE函数和行列互换则是对数据进行条件处理和转置的重要工具。DECODE函数类似于IF-THEN-ELSE的逻辑,允许在SQL查询中进行条件判断。 7. CASE表达式是SQL中的条件表达式,类似于编程语言中的switch-case结构,...
§8.1.3 DECODE实现表的转置 189 §8.2 关于访问远程数据库 192 §8.2.1 数据库链接 192 §8.2.2 使用同义词获得本地透明 193 §8.2.3 在视图中使用user伪列 194 §8.2.4 使用COPY功能 195 §8.2.5 管理Oracle名称...
而`hamming_decode.m`则是解码部分,它执行了接收端的错误检测和纠错操作。 在实际应用中,汉明码被广泛应用于通信、存储等领域,尤其是对可靠性要求较高的场合,例如卫星通信、硬盘存储等。虽然汉明码不能纠正多位...
因此,"decode.m"(虽然未在标签中提及,但通常会是这样一个文件)应该是解码部分,利用译码算法如BP(Belief Propagation)算法或迭代解码来从收到的噪声码字中恢复出原始信息。 总的来说,这个项目提供了LDPC码的...
- 利用`zip(*matrix)`可以快速地将矩阵的行和列互换,实现转置操作。 17. **创建不共享引用的列表列表** - 创建二维列表时,使用列表推导式或`deepcopy()`函数可以避免所有子列表共享同一引用的问题。 ### 搜索...
检验矩阵是生成矩阵的伴随矩阵的转置。通过对码字执行特定的位操作(如异或),可以检测到是否存在错误,并确定错误发生在哪个位置。 4. **错误校正**: 如果检测到错误,根据汉明码的定位和纠正能力,可以推断出...
转置二维数组可以使用`zip`函数结合`*`运算符实现。例如:`transposed = zip(*matrix)`。 **1.17 创建不共享引用的列表列表** 为了避免列表列表中的内层列表共享引用,可以使用列表推导生成独立的列表。例如:`[[0...
9. **矩阵分析**:`fliplr`和`flipud`分别实现矩阵的左右和上下翻转,`transpose`是转置操作,`inv`计算矩阵的逆,`norm`得到矩阵的范数,`cond`评估矩阵的条件数,`rref`进行矩阵的初等行变换,`eig`和`eigs`求解...