`
http_url
  • 浏览: 46177 次
  • 性别: Icon_minigender_1
  • 来自: 徐州
社区版块
存档分类
最新评论

用decode 实现行转列

SQL 
阅读更多

1           根据第一张表写出查询结果符合第2张表的语句(1--,2—女)

       (注:这是老师给的一个作业题,呵呵)

 

表一:populations

 

country        sex          population

-----------     --------     -----------------

中国                1                340

中国                2                260

美国                1                 45     

美国                2                 55

加拿大             1                 51

加拿大             2                 49

英国                1                 40 

英国                2                 60

根据表一生产如下查询结果:

 

国家               男               女

-----------     --------     -----------

中国                340            260

美国                 45              55

美加拿大           51              49     

英国                 40              60

 

代码如下: 

select country, sum(decode(sex,'1',num)) 男, sum(decode(sex,'2',num)) 女 from populations group by country;


 

 

 请问大牛们,劳驾一下,如果不用decode而用case 语句该怎么写呢??

 

 

分享到:
评论
3 楼 http_url 2009-02-06  
armorking  太感谢你了!~~
2 楼 http_url 2009-02-05  
<p>我是这样写的,竟然也可以</p>
<pre name="code" class="sql"> 1  select country,
2      sum(CASE sex WHEN '1' THEN num ELSE 0 END) 男,
3      sum(CASE sex WHEN '2' THEN num ELSE 0 END) 女
4  from population
5  group by country</pre>
<p><span style="font-size: small; color: #0000ff;"> </span></p>
<p><span style="font-size: small; color: #0000ff;">请问哪里有详细讲解Select语句的啊,英文的看不懂:-)</span></p>
1 楼 armorking 2009-02-05  
select country,
    sum(CASE WHEN(sex = '1') THEN num ELSE 0 END) 男,
    sum(CASE WHEN(sex = '2') THEN num ELSE 0 END) 女,
from populations
group by country

相关推荐

    Oracle的列转行问题

    网络上流传了很多将行数据转换称列数据的方法和应用实例,一般通过decode或者case函数与聚合函数联合实现功能,这里就不再重复。 日前本人在一个偶然的应用中用到了一个需要将列数据转换为行数据的问题。搜索了很久...

    Oracle Decode()函数使用技巧分享

    今天上头要求做一个类似的功能,初步想到的列转行,但是如何实现也没有什么好办法,这个函数不错DECODE函数是ORACLE PL/SQL是功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其他数据库厂商的SQL实现...

    音频转换(WAV转换为PCM)

    WAV可以使用多种音频编码来压缩其音频流,不过我们常见的都是音频流被PCM编码处理的WAV,但这不表示WAV只能使用PCM编码,MP3编码同样也可以运用在WAV中,和AVI一样,只要安装好了相应的Decode,就可以欣赏这些WAV了...

    行列转换.sql(包括行列转换实例)

    行列转换实例 ... 创建视图时移动行值为列值 create view v_view1 as select seq, sum(decode(jcxm,1, zhi)) 检测项目1, sum(decode(jcxm,2, zhi)) 检测项目2, .............................

    从Oracle 表格行列转置说起第1/2页

    NO MONEY DAY 1 23 1 1 43 2 ...咱们一步步来实现: 1.运用DECODE转换行为列 SQL: SELECT NO, DECODE(DAY,1,MONEY,”) DAY1, DECODE(DAY,2,MONEY,”) DAY2, DECODE(DAY,3,MONEY,”) DAY3FROM

    Oracle 数据显示 横表转纵表

    横表转纵表亦可用与decode意义相似的case语句实现,原理同该语句,这里不再过多描述。

    Python实现JSON反序列化类对象的示例

    之前在Java里面,实现序列化和反序列化,不管是 jackson ,还是 fastjson 都非常的简单。现在有项目需要用Python来开发,很自然的希望这样的便利也能在Python中体现。 但是在网上看了一些教程,讲反序列化的时候,...

    Python实现序列化及csv文件读取

    使用pickle模块中的函数,实现序列化和反序列化操作。 序列化使用: pickle.dump(obj,file) obj是被序列化的对象,file指的是存储的文件。 pickle.load(file) 从file读取数据,反序列化成对象。 二、与execl 文件...

    Oracle实现行列转换的方法分析

    本文实例讲述了Oracle实现行列转换的方法。分享给大家供大家参考,具体如下: 1、固定列数的行列转换 如: student subject grade --------- ---------- -------- student1 语文 80 student1 数学 70 student1 英语...

    数据库基础

    §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名称...

    Oracle8i_9i数据库基础

    §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名称...

    C#编程经验技巧宝典

    68 &lt;br&gt;0091 如何根据ASCII码获得字母 68 &lt;br&gt;0092 编程中经常使用的ASCII码 68 &lt;br&gt;0093 获得汉字的区位码 69 &lt;br&gt;0094 如何根据区位码获得汉字 69 &lt;br&gt;0095 如何将行字符串转换为列字符串...

    Oracle_Database_11g完全参考手册.part3/3

    9.6 使用MAX或MIN函数查找行 9.7 优先级和圆括号的应用 9.8 小结 第10章 日期:过去、现在及日期的差 10.1 日期算法 10.1.1 SYSDATE、CURRENTDA_DATE及SYSllMESTAMP 10.1.2 两个日期的差 10.1.3 添加月份 10.1.4 ...

    Oracle_Database_11g完全参考手册.part2/3

    9.6 使用MAX或MIN函数查找行 9.7 优先级和圆括号的应用 9.8 小结 第10章 日期:过去、现在及日期的差 10.1 日期算法 10.1.1 SYSDATE、CURRENTDA_DATE及SYSllMESTAMP 10.1.2 两个日期的差 10.1.3 添加月份 10.1.4 ...

    SQL 优化原则

    (转)SQL 优化原则 一、问题的提出  在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中...

    SQL培训第一期

    伪列不是表的真实列,但是你可以象使用真实列一样使用伪列,常用伪列:rowid行的绝对物理编号,每一行是唯一的。rownum序号,返回查询结果的每行序号。系统时间sysdate,返回系统当前时间。 2.1.4.2 伪表 select * ...

    ORACLE数据库智能化管理系统2012

    还在为达到求某种数据值需要多表数据关联起来后得到结果重复,想去除多余行值,单独书写的SQL语句又无法解决而频繁手工操作或通过编写软件才能实现想要的结果而烦恼吗? 还在为查看数据库会话情况及死锁情况,想批量...

    Oracle事例

    14、查询从多少行到多少行的记录(可以用在web开发中的分页显示) select * from ( select rownum row_id,b.* from (select a.* from sys_oper a) b ) where row_id between 15 and 20 15、对公共授予访问权 ...

    php网络开发完全手册

    7.5.7 用正则表达式进行字符串分割 7.5.7 ——preg_split 115 7.6 字符操作的注意事项 117 7.7 小结 118 第8章 数组操作与数据结构算法 119 8.1 一维数组与多维数组 119 8.1.1 一维数组简介 119 8.1.2 多维数组简介 ...

    Oracle数据库学习指南

    1. Decode()函数使用技巧(NT+IIS+ASP+ORACLE) 2. Dual伪列 3. EXP、IMP 命令详解 4. Exp-Imp大量数据 5. Export-Import 使用技巧与常见错误 6. NULL 使用详解 7. Oracle for NT系统实用工具介绍 8. Oracle ...

Global site tag (gtag.js) - Google Analytics