ORACLE 行转列 案例解析
-- 创建 国家城市信息 临时表
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 行转列 案例解析的更多相关文章
- Oracle 行转列pivot 、列转行unpivot 的Sql语句总结
这个比较简单,用||或concat函数可以实现 select concat(id,username) str from app_user select id||username str from ap ...
- oracle 行转列 分析函数
oracle 行转列 首先看一下源数据: 方法一:WM_CONCAT group by 这个方法没有问题. SELECT CODE_TS, WMSYS.WM_CONCAT(S_NUM + || ':' ...
- Oracle行转列、列转行的Sql语句总结
多行转字符串 这个比较简单,用||或concat函数可以实现 SQL Code 12 select concat(id,username) str from app_userselect i ...
- Oracle行转列、列转行的Sql语句总结(转)
多行转字符串 这个比较简单,用||或concat函数可以实现 select concat(id,username) str from app_userselect id||username str f ...
- oracle行转列,列转行
多行转字符串这个比较简单,用||或concat函数可以实现 SQL Code select concat(id,username) str from app_userselect id||userna ...
- oracle 行转列、列转行
最近做数据处理,经常遇到需要行转列.列转行的场景,记录个非常简单实用的oracle 列转行.行转的列方法 1.行转列,基础数据如下 做行转列处理 处理SQL select user_name,max ...
- Oracle行转列操作
有时候我们在展示表中数据的时候,需要将行转为列来显示,如以下形式: 原表结构展示如下:---------------------------产品名称 销售额 季度------------ ...
- oracle行转列(连接字符串函数)
方法一:wmsys.wm_concat(column) 介绍:其函数在Oracle 10g推出,在10g版本中,返回字符串类型,在11g版本中返回clob类型.括号里面的参数是列,而且可以是多个列的集 ...
- Oracle行转列的函数
--行转列的函数-- CREATE OR REPLACE FUNCTION Calvin( col IN VARCHAR2,dw IN VARCHAR2) RETURN VARCHAR2 IS ret ...
随机推荐
- 设计模式 --> (1)工厂模式
工厂模式 工厂模式属于创建型模式,大致可以分为三类,简单工厂模式.工厂方法模式.抽象工厂模式. 适用性: 例如部署多种数据库的情况,可能在不同的地方要使用不同的数据库,此时只需要在配置文件中设定数据库 ...
- 玩转接口测试工具fiddler 教程系列1
我们在做web测试的时候,很多时候需要查看接口发送的数据返回的数据是否正常,这样可以排除是客户端的问题还是服务器的问题,举个例子来说,如果我们发现页面上面数据少了, 通过fiddler查看数据返回就少 ...
- attr与prop html与text
- 面试常考---html篇
1.html5新特性,语义化 HTML5为我们提供了一系列的语义标签. 1.<section></section> 定义文档中的主体部分的节.段. 2.<article& ...
- Java基础学习笔记十四 常用API之基本类型包装类
基本类型包装类 Java中有8种基本的数据类型,可是这些数据是基本数据,想对其进行复杂操作,变的很难.怎么办呢?在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们 ...
- 【详细】总结JavaWeb开发中SSH框架开发问题(用心总结,不容错过)
在做JavaWeb的SSH框架开发的时候,遇到过很多的细节问题,这里大概记录下 我使用的IDE是Eclipse(老版本)三大框架:Spring4.Struts2.Hibernate5 1.web.xm ...
- java程序在没有java环境的电脑上执行的方法(关键词jar,exe)
可以让你写的java程序在别人没有任何java配置以及环境的情况下执行 写好程序 在程序对应的package上右键->export->java->Runnable JAR file- ...
- python 操作PostgreSQL
pip install psycopg Python psycopg2 模块APIs 以下是psycopg2的重要的的模块例程可以满足Python程序与PostgreSQL数据库的工作. S.N. A ...
- iOS开发-OC中TabView的编辑
UITableView编辑 1> UITableView 编辑流程 2> UITableView 编辑步骤(四步) ① 第一步 : 让 TableView 处于编辑状态(在按钮点击事件方法 ...
- http post/get 2种使用方式
public class HttpUtil { //HttpPost public static String executePost(String url, List<NameValue ...