case和decode的用法(行转列)】的更多相关文章

创建了一张成绩表,如下图所示: 在oracle中,这两个函数我们都可以使用,代码及结果如下: decode用法: select Name,decode(Subject,'语文',1,'数学',2,'英语',3) 科目代码 from results; select Name,decode(Subject,'语文',1,'数学',2,3) 科目代码 from Results; case用法: select name,       case           when Subject='语文' th…
/* SELECT <非透视的列>, [第一个透视的列] AS <列名称>, [第二个透视的列] AS <列名称>, ... [最后一个透视的列] AS <列名称>, FROM (<生成数据的 SELECT 查询>) AS <源查询的别名> PIVOT ( <聚合函数>(<要聚合的列>) FOR [<包含要成为列标题的值的列>] IN ( [第一个透视的列], [第二个透视的列], ... [最后一…
1.行转列 转之前:…
----创建测试表 create table student_score( name varchar2(20), subject varchar2(20), score number(4,1) ); -----插入测试数据 insert into student_score (name,subject,score)values('张三','语文',78); insert into student_score (name,subject,score)values('张三','数学',88); in…
异同点 都可以对表行转列: DECODE功能上和简单Case函数比较类似,不能像Case搜索函数一样,进行更复杂的判断 在Case函数中,可以使用BETWEEN, LIKE, IS NULL, IN, EXISTS等等(也可以使用NOT IN和NOT EXISTS,但是这个时候要注意NULL的情况.) DECODE方法 (Oracle公司独家) decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) --该函数的含义如下: IF 条件=值1 THEN RETURN(翻…
在数据库操作中,有些时候我们遇到需要实现“行转列”的需求,例如一下的表为某店铺的一周收入情况表: WEEK_INCOME(WEEK VARCHAR(10),INCOME DECIMAL) 我们先插入一些模拟数据: INSERT INTO WEEK_INCOME UNION ALL UNION ALL UNION ALL UNION ALL UNION ALL UNION ALL 一般我们最经常使用的查询是查询一周中每天或某几天的收入,例如查询周一至周日全部的收入: SELECT WEEK,INC…
前言 开发中我们经常会用到行转列,这里记录一下我在项目中实现行转列的思路.需求:报表模块,统计某机房机架的不同状态(1 空闲  2 预占  3 占用)的数量(真实需求更为复杂,这里只是讨论技术,简化一下) decode函数 以下介绍摘自百度百科: DECODE函数是ORACLE PL/SQL的功能强大的函数之一,以其简洁的运算方式,可控的数据模型和灵活的格式转换而闻名.目前还只有ORACLE公司的SQL提供了此函数,其它数据库厂商的SQL实现还没有此功能. 在DECODE的语法中,实际上就是这样…
http://technet.microsoft.com/zh-cn/library/ms177410.aspx unpivot : CREATE TABLE pvt (VendorID int, Emp1 int, Emp2 int,    Emp3 int, Emp4 int, Emp5 int);GOINSERT INTO pvt VALUES (1,4,3,5,4,4);INSERT INTO pvt VALUES (2,4,1,5,5,5);INSERT INTO pvt VALUES…
1.PIVOT用法(行转列) select * from Table_Score as a pivot (sum(score) for a.name in ([语文],[数学],[外语],[文综],[理综])) as b 数据: id name score 语文 数学 外语 文综 理综 结果: id 语文 数学 外语 文综 理综 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 2.UNPIVOT用法(列转行) select orders,wee…
1.通过 10g 所提供的 WMSYS.WM_CONCAT 函数即可以完成 行转列的效果 select group_code, wm_concat(display_title) from DR_OPM_DATASET_RELATED group by group_code 网上看到例子: CREATE TABLE tab_name(ID INTEGER NOT NULL PRIMARY KEY,cName VARCHAR2(20));CREATE TABLE tab_name2(ID INTEG…