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 ...
随机推荐
- windows上SSH服务连接远程主机失败
putty连接出现错误提示"Network error:connection refused",xshell连接出现错误提示"connection failed:(por ...
- java.lang.Thread、java.lang.ThreadGroup和java.lang.ThreadLocal<T>详细解读
一.Thread类 public class Thread extends Object impments Runnable 线程是程序中的 执行线程.java虚拟机允许应用程序并发地运行多个执行线 ...
- SpringMvc环境搭建(配置文件)
在上面的随笔里已经把搭建springmvc环境的基本需要的包都下下来了,拉下来就是写配置文件了. 下面左图是总的结构,右图是增加包 一.最开始当然是web.xml文件了,这是一个总的宏观配置 < ...
- centos7 用工具nmtui更改网卡设置
1.[root@cjh-db ~ 15:13:59]#nmtui
- springmvc与freemarker的整合
官方简介:FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具. 它不是面向最终用户的,而是一个Java ...
- 移动端H5地图矢量SHP网格切分打包方案
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 与离线瓦片方案一样,同样是为了解决移动端网速和流量问题,但是却 ...
- 浅谈element-ui中的BEM范式实践
日常的工作中,我们无时无刻不在和样式打交道.没有样式的页面就如同一部电影,被人随意地在不同地方做了截取. BEM规范应该是对于我们现在前端组件开发中我觉得是最合适的一套范式了.所以,我在自己的日常工作 ...
- 实现mypwd
1 学习pwd命令 2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 3 实现mypwd 4 测试mypwd 提交过程博客的链接 代码如图
- 从PRISM开始学WPF(五)MVVM(一)ViewModel?
从PRISM开始学WPF(一)WPF? 从PRISM开始学WPF(二)Prism? 从PRISM开始学WPF(三)Prism-Region? 从PRISM开始学WPF(四)Prism-Module? ...
- php后台的在控制器中就可以实现阅读数增加
$smodel=M('Sswz');$smodel->where($map)->setInc('view' ,1);php后台的在控制器中就可以实现阅读数增加前台不需要传值