Oracle用法、函数备忘记录

Listagg

select
*
from emp

select LISTAGG(ename,‘-‘)
within
group
(order
by deptno desc)
from emp;

可以看到功能类似wm_concat,可以自定义连接符,区别:

LISTAGG? : 11g2才提供的函数,不支持distinct,拼接长度不能大于4000,函数返回为varchar2类型,最大长度为4000.

和wm_concat相比,listagg可以执行排序。例如
select deptno, listagg(ename,‘;‘)
within
group(order
by ename) enames from emp group
by deptno;

with table as

?SQL Code?


1
2
3
4
5
6
7
8
9
10
11
12
13

?
with?temp?as(
??select?500?population,?‘China‘?nation?,‘Guangzhou‘?city?from?dual?union?all
??select?1500?population,?‘China‘?nation?,‘Shanghai‘?city?from?dual?union?all
??select?500?population,?‘China‘?nation?,‘Beijing‘?city?from?dual?union?all
??select?1000?population,?‘USA‘?nation?,‘New?York‘?city?from?dual?union?all
??select?500?population,?‘USA‘?nation?,‘Bostom‘?city?from?dual?union?all
??select?500?population,?‘Japan‘?nation?,‘Tokyo‘?city?from?dual?
)
select?population,
???????nation,
???????city,
???????listagg(city,‘,‘)?within?GROUP?(order?by?city)?over?(partition?by?nation)?rank
from?temp

With table as 类似创建一个临时表,只可以查询一次,之后就被销毁,同时可以创建多个临时table,比如:

with sql1 as

(select to_char(a) s_name from test_tempa),

sql2 as

(select to_char(b) s_name

from test_tempb

where
not
exists
(select s_name from sql1 where
rownum
=
1))

select
*

from sql1

union
all

select
*

from sql2

pivot unpivot

行列转换,见

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

时间: 2024-11-01 10:50:32

Oracle用法、函数备忘记录的相关文章

oracle下 启动subversion命令 及 oracle相关服务启动备忘

linux shell下  svnserve - d -r + 目录   例如:svnserve -d -r /svn 启动 svn服务. 访问svn://192.168.0.120/kjcg 测试. 启动oracle: 一.如何启动数据库实例 1.进入到sqlplus启动实例 [[email protected] ~]$ su - oracle --“切换到oracle用户” 2. Password: [[email protected] ~]$ lsnrctl start  --“打开监听”

验证码常用函数备忘

颜色聚类 1 public static class KmeansColor 2 { 3 /* 4 * 聚类函数主体. 5 * 针对一维 double 数组.指定聚类数目 k. 6 * 将数据聚成 k 类. 7 */ 8 public static Color[][] cluster(Color[] p, int k) 9 { 10 int intRunCount = 0; 11 start: 12 intRunCount++; 13 // 存放聚类旧的聚类中心 14 Color[] c = n

jdbc中对mysql数据库操作的简单封装--(仅做备忘记录)

本次使用jdbc中的mysql-connector-java-5.1.47-bin.jar的连接包,下载这个jar包放在javaee项目的WEB-INF/lib目录下,再把它作为外包jar包进入到libraries中,这样就可以使用mysql的jdbc接口了. 自己封装的代码中引入了两个自己字义的Exception:SqlSecureException.java package com.myproweb.exception; public class SqlSecureException ext

AnjularJS ngTable插件使用备忘记录(一个ngTableDemo)

项目中用到AngularJS的表格ng-table,功能相当强大,基本的排序.分页等都有.这里做个备忘,以便以后使用. 该Demo利用vs2012中的webapi(暂时没连数据库),下面是详细代码 ngTable.html <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" con

关于oracle的一点备忘

数据库无法回避的就是处理数据 情景:发票信息,很多公司员工在进行交易的时候,填写的发票信息都是一样的,所以公司员工往往想调用统一的发票信息,公司会计登录系统可以填写通用发票信息,为了生成订单简单,发票需要和员工号码绑定,所以发票的表里想要复制一份员工号为会计的发票信息,改动其中的员工号,发票id,创建时间,其余不变 不知道大家弄懂应用情境没,叙述能力有限. 解决:可以使用select into,但是感觉不方便和灵活.所以考略利用右边和存储过程,因为没有返回值,就不写函数了 上代码: create

SSH框架整合中的备忘记录

整合ssh需要的jar包: struts2-core.jar struts2-convention-plugin-2.*.*.*.jar ------是struts2的注解开发jar包 struts2-spring-plugin-2.*.*.*.jar ------struts2用于整合spring的jar包 (spring中也有一个 spring-struts2的jar包,也是用来整合两个框架的jar包,引入其中一个可以) Hibernate框架开发的响应的jar: hibernate-cor

Centos6.5安装MySQL5.6备忘记录

Centos6.5安装MySQL5.6 1. 查看系统状态 [root@itzhouq32 tools]# cat /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m [root@itzhouq32 tools]# uname -a Linux itzhouq32 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Lin

一些常用的算法函数备忘

1.冒泡排序 void Bublesort(char []a,int n) //n数组长度 { int i,j,k; for(j=0;j<n;j++) /* 气泡法要排序n次*/ { for(i=0;i<n-j-1;i++) /* 值比较大的元素沉下去后,只把剩下的元素中的最大值再沉下去就可以啦 */ { if(a[i]>a[i+1]) /* 把值比较大的元素沉到底 */ { k=a[i]; a[i]=a[i+1]; a[i+1]=(char)k; } } } }

移动端开发备忘

这是一些移动端开发的备忘记录. <meta> 元素 <meta name=“viewport” content=“width=device-width, initial-scale=1.0,maximum-scale=1.0, user-scalable=no”/> width:宽度(数值 / device-width)(范围从200 到10,000,默认为980 像素) height:高度(数值 / device-height)(范围从223 到10,000) initial-s