Oracle不同行的某列字符串相加,去除重复值
有如下表Test
City People Make
广州 1 A
广州 2 B
广州 3 C
上海 4 A
上海 5 E
广州 6 A
上海 7 E
实现如下效果
City People Make
上海 16 AE
广州 12 ABC
在公司论坛看到有人对这个要求的实现,觉得有点复杂。自己研究了下,重新写了下sql如下:
9I(没有环境测试,但是函数在9I中好像都是已经有了的):
WITH TEST AS (SELECT CITY,MAKE,SUM(PEOPLE) PEOPLE from Test GROUP BY CITY,MAKE ORDER BY CITY,MAKE)
SELECT CITY,SUM(PEOPLE),(select REVERSE(ltrim(max(sys_connect_by_path(MAKE,',')),',')) MAKE
from
(
SELECT MAKE,CITY,ROWNUM numberid from TEST
) T1 WHERE T1.CITY = T2.CITY
start with T.CITY = T2.CITY connect by prior numberid = numberid+1
) MAKE from TEST T2 GROUP BY CITY
10G:
WITH TEST AS (SELECT CITY,MAKE,SUM(PEOPLE) PEOPLE from Test GROUP BY CITY,MAKE ORDER BY CITY,MAKE)
SELECT CITY,SUM(PEOPLE),WMSYS.WM_CONCAT(MAKE) from TEST GROUP BY CITY
==========================================================
相关关键字:
1.sys_connect_by_path 函数主要作用是可以把一个父节点下的所有子节点通过某个字符进行区分
2.start with ... connect by prior ... 递归实现,如
start with pid= 1 connect by prior pid = id
//父id=子id 正树型结构 子id=父id 倒树型结构
上面的SQL中注意
start with T.CITY = T2.CITY connect by prior numberid = numberid+1
与start with T.CITY = T2.CITY connect by prior numberid+1 = numberid的区别
3.REVERSE字符串反转
===========================================================
回顾下其他:
1.Group By, Having, Where, Order by几个语句的执行顺序。一个SQL语句往往会产生多个临时视图,那么这些关键字的执行顺序就非常重要了,因为你必须了解这个
相关文档:
Oracle 数据库 11g面向 DBA 和开发人员的重要新特性:SecureFiles:
1、SecureFiles:新 LOB
了解如何使用新一代 LOB:SeureFiles。SecureFiles 集外部文件和数据库 LOB 方法的优点于一身,可以存储非结构化数据,允许加密、压缩、重复消除等等。
数据库驻留 BLOBS 或 OS 文件
您在 Oracle 数据库中 ......
注: 这是个人看Oracle视频时写下的笔记, 多有错误, 望各位切勿吝惜赐教.
1. Dos
下登陆超级管理员
:
sqlplus sys/
密码
as sysdba
2.
更改管理员
:
alter user scott account unlock;
3.
数据的备份
.
A
导出
:
Cmd
下
: ......
1. 修改redo log file大小
SQL> select group#,status from v$log;
SQL> alter database add logfile group 4 'F:\oracle\product\10.2.0\oradata\orcl\REDO04.LOG' size 512m;
SQL> alter system switch logfile;
SQL> select group#,status from v$log;
2. 修改large_pool_size大小
SQL> alter  ......
Oracle 数据集成解决方案
Oracle数据集成解决方案用于在SOA、BI和数据仓库环境中构建、部署和管理以实时数据为中心的架构,包含了数据集成的所有要素——实时数据移动、转换、同步、数据质量、数据管理和数据服务——能确保各个复杂系统的信息及时、准确、一致。
通过使用Oracle数据集成,企 ......
Create directory让我们可以在Oracle数据库中灵活的对文件进行读写操作,极大的提高了Oracle的易用性和可扩展性。
其语法为:
CREATE [OR REPLACE] DIRECTORY directory
AS 'pathname
';
本案例具体创建如下:
create or replace directory exp_dir as '/tmp';
目录创建以后,就可以把读写权限授予特定用 ......