最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

Oracle行转列的写法

来源:懂视网 责编:小采 时间:2020-11-09 11:25:20
文档

Oracle行转列的写法

Oracle行转列的写法:Oracle 行转列 的写法: /* DROP TABLE FOO; */ /**创建一张演示的表**/ CREATE TABLE FOO ( BBBID NUMBER(2), --主键 Oracle 行转列 的写法: /* DROP TABLE FOO; */ /**创建一张演示的表**/ CREATE TABLE FOO (
推荐度:
导读Oracle行转列的写法:Oracle 行转列 的写法: /* DROP TABLE FOO; */ /**创建一张演示的表**/ CREATE TABLE FOO ( BBBID NUMBER(2), --主键 Oracle 行转列 的写法: /* DROP TABLE FOO; */ /**创建一张演示的表**/ CREATE TABLE FOO (

Oracle 行转列 的写法: /* DROP TABLE FOO; */ /**创建一张演示的表**/ CREATE TABLE FOO ( BBBID NUMBER(2), --主键

Oracle 行转列 的写法:

/*

DROP TABLE FOO;

*/

/**创建一张演示的表**/

CREATE TABLE FOO (

BBBID NUMBER(2), --主键

DEPID NUMBER(2), --单位编号

AAC006 VARCHAR2(1) --性别 1男 2女 0未知

CONSTRAINT CK_AAC006 CHECK (AAC006 = '1' OR AAC006 ='2' OR AAC006 ='0')

);

/**插入用于测试的数据**/

INSERT INTO FOO VALUES(1,1,'1');

INSERT INTO FOO VALUES(2,1,'0');

INSERT INTO FOO VALUES(3,1,'2');

INSERT INTO FOO VALUES(4,1,'2');

INSERT INTO FOO VALUES(5,2,'1');

INSERT INTO FOO VALUES(6,2,'0');

INSERT INTO FOO VALUES(7,2,'2');

INSERT INTO FOO VALUES(8,2,'2');

INSERT INTO FOO VALUES(9,3,'2');

INSERT INTO FOO VALUES(10,3,'2');

INSERT INTO FOO VALUES(11,3,'2');

/**

目标:对该表进行行转列,要得到如下结果集:

depid 男 女 未知

1 2

1 2

0 3

*/

/**原始的数据**/

SELECT * FROM FOO;

/**按照性别码表取值,将FOO.AAC006转化为3列之后的值**/

SELECT DEPID,

DECODE(AAC006,'0',1,0) "男",

DECODE(AAC006,'1',1,0) "女",

DECODE(AAC006,'2',1,0) "未知"

FROM FOO;

/**在上一个结果集上进行加工,就得到行转列的结果!**/

SELECT DEPID,

SUM(DECODE(AAC006,'0',1,0)) "男",

SUM(DECODE(AAC006,'1',1,0)) "女",

SUM(DECODE(AAC006,'2',1,0)) "未知"

FROM FOO

GROUP BY DEPID;


/**

总结(czw 20120624):

行转列,,其实就是将某一个字段,按照码值拆分为若干个字段,最后通过聚集函数得到相应的值。

**/

linux

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

Oracle行转列的写法

Oracle行转列的写法:Oracle 行转列 的写法: /* DROP TABLE FOO; */ /**创建一张演示的表**/ CREATE TABLE FOO ( BBBID NUMBER(2), --主键 Oracle 行转列 的写法: /* DROP TABLE FOO; */ /**创建一张演示的表**/ CREATE TABLE FOO (
推荐度:
标签: 数据库 写法 oracle
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top