-- 创建 国家城市信息 临时表                  
WITH T_NATION_CITY_INFO AS(
        SELECT '北京'   AS CITY,'中国' AS NATION FROM DUAL UNION ALL
        SELECT '南京'   AS CITY,'中国' AS NATION FROM DUAL UNION ALL
        SELECT '上海'   AS CITY,'中国' AS NATION FROM DUAL UNION ALL
        SELECT '广州'   AS CITY,'中国' AS NATION FROM DUAL UNION ALL
        SELECT '深圳'   AS CITY,'中国' AS NATION FROM DUAL UNION ALL
        SELECT '纽约'   AS CITY,'美国' AS NATION FROM DUAL UNION ALL
        SELECT '洛杉矶'   AS CITY,'美国' AS NATION FROM DUAL UNION ALL
        SELECT '华盛顿' AS CITY,'美国' AS NATION FROM DUAL UNION ALL
        SELECT '东京'   AS CITY,'日本' AS NATION FROM DUAL UNION ALL
        SELECT '北海道'   AS CITY,'日本' AS NATION FROM DUAL UNION ALL
        SELECT '东京'   AS CITY,'日本' AS NATION FROM DUAL UNION ALL
        SELECT '伦敦'   AS CITY,'英国' AS NATION FROM DUAL UNION ALL
        SELECT '爱丁堡'   AS CITY,'英国' AS NATION FROM DUAL UNION ALL
        SELECT '巴黎'   AS CITY,'法国' AS NATION FROM DUAL UNION ALL
        SELECT '巴黎'   AS CITY,'法国' AS NATION FROM DUAL
)

-- 查询原始表数据

-- SELECT T.*  FROM T_NATION_CITY_INFO T;

要求:按国家分类,展示每个国家的城市信息

--  使用 CONCAT_STR 函数 ,可以去重
SELECT T.NATION,CONCAT_STR(DISTINCT T.CITY)  AS CITY  FROM T_NATION_CITY_INFO T GROUP BY T.NATION;

-- 使用 Oracle 10 WM_CONCAT 函数 ,可以去重 ,
--SELECT T.NATION, TO_CHAR(WM_CONCAT(distinct T.CITY))  AS CITY FROM T_NATION_CITY_INFO T GROUP BY T.NATION;

--  使用 Oracle 11  LISTAGG 函数 ,不能去重
--SELECT T.NATION,LISTAGG( T.CITY ,',') WITHIN GROUP(ORDER BY T.CITY)  AS CITY FROM T_NATION_CITY_INFO T GROUP BY T.NATION;

ORACLE 行转列 案例解析的更多相关文章

  1. Oracle 行转列pivot 、列转行unpivot 的Sql语句总结

    这个比较简单,用||或concat函数可以实现 select concat(id,username) str from app_user select id||username str from ap ...

  2. oracle 行转列 分析函数

    oracle 行转列 首先看一下源数据: 方法一:WM_CONCAT group by 这个方法没有问题. SELECT CODE_TS, WMSYS.WM_CONCAT(S_NUM + || ':' ...

  3. Oracle行转列、列转行的Sql语句总结

    多行转字符串 这个比较简单,用||或concat函数可以实现  SQL Code  12    select concat(id,username) str from app_userselect i ...

  4. Oracle行转列、列转行的Sql语句总结(转)

    多行转字符串 这个比较简单,用||或concat函数可以实现 select concat(id,username) str from app_userselect id||username str f ...

  5. oracle行转列,列转行

    多行转字符串这个比较简单,用||或concat函数可以实现 SQL Code select concat(id,username) str from app_userselect id||userna ...

  6. oracle 行转列、列转行

    最近做数据处理,经常遇到需要行转列.列转行的场景,记录个非常简单实用的oracle  列转行.行转的列方法 1.行转列,基础数据如下 做行转列处理 处理SQL select user_name,max ...

  7. Oracle行转列操作

    有时候我们在展示表中数据的时候,需要将行转为列来显示,如以下形式: 原表结构展示如下:---------------------------产品名称    销售额     季度------------ ...

  8. oracle行转列(连接字符串函数)

    方法一:wmsys.wm_concat(column) 介绍:其函数在Oracle 10g推出,在10g版本中,返回字符串类型,在11g版本中返回clob类型.括号里面的参数是列,而且可以是多个列的集 ...

  9. Oracle行转列的函数

    --行转列的函数-- CREATE OR REPLACE FUNCTION Calvin( col IN VARCHAR2,dw IN VARCHAR2) RETURN VARCHAR2 IS ret ...

随机推荐

  1. linux截取字符串之sort、uniq、cut用法

    sort命令是帮我们依据不同的数据类型进行排序 参 数:  -b   忽略每行前面开始出的空格字符.  -c   检查文件是否已经按照顺序排序.  -f   排序时,忽略大小写字母.  -M   将前 ...

  2. 【R语言系列】read.table报错incomplete final line found by readTableHeader

    文件内容: id,SGBH,DMSM1,SGDO,SGFSSJ 1,310117620,伤人事故,上海市,2018-03-02 20:04:00 2,310117621,死亡事故,杭州市,2018-0 ...

  3. 杭电OJ2004——成绩转换

    /*成绩转换Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  4. 团队作业5-测试与发布(AIpha版本)

    对于已完成的项目我们进行了诸多测试,找到了少许bug,对着这些bug我们在改进的基础上提出了新的目标. 1,测试环境:个人笔记本.个人台式机.环境windows7.网络校园网加移动vpn,浏览器360 ...

  5. NetFPGA-1G-CML点亮 LED

    前言 用vivado建立工程的时候选择的型号为:XC7K325tffg676-1 在以下代码文件中,仿真与设计都没有问题.在xdc文件中的时钟约束与锁相环配置中还存在问题,没有寻找到解决办法 使用手册 ...

  6. 【详细】Lucene使用案例

    Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引 ...

  7. OpenShift实战(一):OpenShift高级安装

    1.1 服务器基本信息 本次安装采用一个master.5个node.3个etcd,node节点两块硬盘,60G磁盘用于docker storage,xxx改为自己的域名或主机名. 节点 功能 IP 内 ...

  8. 《javascript设计模式与开发实践》阅读笔记(13)—— 职责链模式

    职责链模式 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止. 书里的订单的例子 假设我们负责一个售卖手机 ...

  9. JAVA_SE基础——28.封装

    黑马程序员blog... 面向对象三大特征:1. 封装2. 继承3  多态. 今天我们先学习第一大特征,封装. 封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 好处:     1. 将变 ...

  10. linux下安装配置jdk(解压版)

    在linux下登录oracle官网,下载解压版jdk    传送门 系统默认下载到"下载"目录中 创建要将该文件解压的文件夹: 其中 -p 参数代表递归创建文件夹(可以创建多级目录 ...