-- 创建 国家城市信息 临时表                  
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. [jdoj1090]矩阵_区间dp

    矩阵 jdoj-1910 题目大意:给你连续的n个矩阵的长和宽,保证每连续的两个相邻矩阵满足相乘的条件,不能改变题目中矩阵的位置,求将这些矩阵相乘为一个矩阵的最小乘法次数. 注释:1<=n< ...

  2. Android 源代码结构

    简介 在使用Andriod SDK进行应用程序开发的时候,我们需要对源代码进行调试,有可能需要进入到某个Android API函数内部进行跟踪调试.但是,如果目标版本的SDK没有关联对应版本的源代码的 ...

  3. virtualbox主机与虚拟机之间互相通信教程

    前言 在使用虚拟机搭建集群时,需要实现虚拟机与虚拟机之间互相ping通,并且主机与虚拟机也可以互相ping通. 一.环境准备: 1.主机为win7 2.virtualbox下创建两台ubuntu虚拟机 ...

  4. webSocket通讯

    1.使用facebook第三方SRWebSocket进行websocket通讯. pod 'SocketRocket' 2.通讯地址: ws://192.168.1.128:18882/ws 注意:s ...

  5. 关于Unity中如何代码动态修改天空盒

    在Unity中动态修改天空盒有两种方法: 一.为每个Texture建立天空盒材质球,需要更换时直接将对应材质球作为天空盒,缺点是建立的材质球太多 private void ChangeSkybox(M ...

  6. 【动态规划】滚动数组的求解(C++)

    虽然接触动态规划算法已经有一段时间,给一个01背包问题,能够做到一个表格简单粗暴下去,然后求得结果,但心里总觉得对这个算法理解十分不到位,抱着对算法的热爱,网上很多大牛的算法思维实在让我佩服的五体投地 ...

  7. 2017年PHP程序员未来路在何方——韩天峰

    PHP 从诞生到现在已经有20多年历史,从Web时代兴起到移动互联网退潮,互联网领域各种编程语言和技术层出不穷, Node.js . GO . Python 不断地在挑战 PHP 的地位.这些技术的推 ...

  8. js如何获取隐藏的元素的高度

    首先,正常情况下,确保div是有高度的. <!DOCTYPE html> <html lang="en"> <head> <meta ch ...

  9. C语言程序设计(基础)- 第7周作业

    为了防止误解,自从本周开始ppt.pta作业.博客作业的命名均与学校教学周一致. 要求一(20经验值) 完成PTA中题目集名为<usth-C语言基础-第七周作业>和<usth-C语言 ...

  10. 个人作业Week3-案例分析

    DeadLine:2017.10.13 23:00 声明:本作业以邹欣老师博客 http://www.cnblogs.com/xinz/archive/2012/03/26/2417699.html ...