-- 创建 国家城市信息 临时表                  
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. python处理点云数据并生成三维点云模型

    1.python代码: 1 import numpy as np 2 import matplotlib.pyplot as plt 3 from mpl_toolkits.mplot3d impor ...

  2. 10分钟快速入门Redis

    Redis安装 来源:https://github.com/jaywcjlove/handbook 官方编译安装 $ wget http://download.redis.io/releases/re ...

  3. java 单向链表实现

    1 class Node{//Node类 2 private String data; 3 private Node next; 4 public Node(String data){ 5 this. ...

  4. 《PHP 设计模式》翻译完毕

    翻译进度请见:https://laravel-china.org/docs/php-design-patterns/2018?mode=sections 设计模式不仅代表着更快开发健壮软件的有用方法, ...

  5. xml解析多个结点方法(C#)

    解析多个结点的XML文件,格式如下: <?xml version="1.0" encoding="utf-8"?> <response> ...

  6. Java注解(1)-注解基础

    注解(Annotation)是在JAVA5中开始引入的,它为在代码中添加信息提供了一种新的方式.注解在一定程度上把元数据与源代码文件结合在一起,正如许多成熟的框架(Spring)所做的那样.那么,注解 ...

  7. linux scp 命令

    scp 命令 scp 命令 意思是 secure copy 即安全拷贝,可以把它看做是 cp 命令的高级版,可以跨主机拷贝. 经常用来在局域网内不同主机之间分享文件,或者在本机与远程主机中分享文件. ...

  8. alpha-咸鱼冲刺day2

    一,合照 emmmmm.自然是没有的. 二,项目燃尽图 三,项目进展 今天并没有什么进展,弄了好久好像也只研究出怎么把JS的功能块插入进去.html的信息提交这些还不知道要怎么弄. 四,问题困难 日常 ...

  9. 团队作业7——第二次项目冲刺(Beta版本12.08)

    项目每个成员的进展.存在问题.接下来两天的安排. 已完成的内容:完成了排行榜的测试.上传头像功能的原型设计.界面优化 计划完成的内容:上传头像功能开发.测试.头像裁剪原型设计 每个人的工作 (有wor ...

  10. 2017 国庆湖南 Day5

    期望得分:76+80+30=186 实际得分:72+10+0=82 先看第一问: 本题不是求方案数,所以我们不关心 选的数是什么以及的选的顺序 只关心选了某个数后,对当前gcd的影响 预处理 cnt[ ...