- 浏览: 771808 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (256)
- ssh (18)
- webservice (8)
- java基础 (38)
- j2EE方方面面 (17)
- 随意涂鸭!呵呵 (2)
- 数据库 (22)
- work (10)
- XML与XML解析 (9)
- 测试 (2)
- sso (1)
- ldap (6)
- java 模板技术 (4)
- 版本管理 (1)
- 每日小点滴 (26)
- javascript (26)
- Jakarta Commons (2)
- css (6)
- 设计 (3)
- Eclipse插件开发 (3)
- BAP (3)
- web控件 (2)
- java加密解密 (4)
- 调优 (6)
- 界面技术 (3)
- java多线程 (6)
- 互联网 (2)
- 日志管理 (4)
- java调度 (3)
- rest (0)
- Python (2)
- mobile (2)
- 2016的故事 (4)
- Docker (1)
- NOSQL_Hadoop (0)
最新评论
-
promiseloney:
这个女程序员厉害了。。。
JVM调优:GC 参数 -
zxjlwt:
可以通过WebService上传一个文件吗?素人派http:/ ...
webservice传送XML大小估算 -
liaoshaoyang:
写的不错嘛 可以做参考
权限管理设计一 -
aaaaaaaaabaas:
谢谢,对我有帮助
Apache Commons Configuration使用入门 -
Jack_Wilshere:
com.smartdot.pdm.business.corp. ...
java导出txt
转载自:http://hi.baidu.com/wangzhiqing999/blog/item/40982215996caa62cb80c46e.html
CREATE TABLE TestTitle (
name VARCHAR(10),
seq INT,
title VARCHAR(10)
);
INSERT INTO TestTitle VALUES ('张三', 3, '程序员');
INSERT INTO TestTitle VALUES ('张三', 1, '系统管理员');
INSERT INTO TestTitle VALUES ('张三', 2, '网络管理员');
INSERT INTO TestTitle VALUES ('李四', 2, '项目经理');
INSERT INTO TestTitle VALUES ('李四', 1, '系统分析员');
这里要求 是, 合并后, 字符的顺序,是按照 seq 来排序的
也就是最后的结果,希望是
李四 系统分析员,项目经理
张三 系统管理员,网络管理员,程序员
对于MySQL使用 GROUP_CONCAT 函数 的方式进行处理
首先是 不排序的情况下,默认的查询结果:
mysql> SELECT
-> name,
-> GROUP_CONCAT(title) AS allTitle
-> FROM
-> TestTitle
-> GROUP BY
-> name;
+------+------------------------------+
| name | allTitle |
+------+------------------------------+
| 李四 | 项目经理,系统分析员 |
| 张三 | 程序员,系统管理员,网络管理员 |
+------+------------------------------+
2 rows in set (0.00 sec)
然后是按照 seq 的顺序进行排列的查询结果:
mysql> SELECT
-> name,
-> GROUP_CONCAT(title) AS allTitle
-> FROM
-> (
-> SELECT
-> name,
-> title
-> FROM
-> TestTitle
-> ORDER BY
-> seq
-> ) as subQuery
-> GROUP BY
-> name;
+------+------------------------------+
| name | allTitle |
+------+------------------------------+
| 李四 | 系统分析员,项目经理 |
| 张三 | 系统管理员,网络管理员,程序员 |
+------+------------------------------+
2 rows in set (0.00 sec)
对于Oracle使用 WMSYS.WM_CONCAT 函数 的方式进行处理
首先是 不排序的情况下,默认的查询结果:
SQL>
SQL> SELECT
2 name,
3 WMSYS.WM_CONCAT(title) AS allTitle
4 FROM
5 TestTitle
6 GROUP BY
7 name;
NAME
----------
ALLTITLE
-------------------------------------------
李四
项目经理,系统分析员
张三
程序员,系统管理员,网络管理员
然后是按照 seq 的顺序进行排列的查询结果:
SQL> with myCTE AS
2 (
3 SELECT
4 name,
5 seq,
6 WMSYS.WM_CONCAT(title)
7 OVER(PARTITION BY name ORDER BY seq) AS allTitle
8 FROM
9 TestTitle
10 )
11 SELECT
12 name, allTitle
13 FROM
14 myCTE
15 WHERE
16 NOT EXISTS(
17 SELECT 1
18 FROM myCTE sub
19 WHERE myCTE.name = sub.name
20 AND myCTE.seq < sub.seq
21 );
NAME
----------
ALLTITLE
--------------------------------------------------------------
李四
系统分析员,项目经理
张三
系统管理员,网络管理员,程序员
select from ipms_case,( select case_id ,ltrim(sys_connect_by_path(name, '$@$'), '$@$') as name ,ltrim(sys_connect_by_path(SERVER_HOSTING_ADDRESS, '$@$'), '$@$') as SERVER_HOSTING_ADDRESS ,ltrim(sys_connect_by_path(ICP_REC_NUM , '$@$'), '$@$') as ICP_REC_NUM ,ltrim(sys_connect_by_path(ICP_REG_ADDR, '$@$'), '$@$') as ICP_REG_ADDR ,ltrim(sys_connect_by_path(HOME_WEB_URL, '$@$'), '$@$') as HOME_WEB_URL ,ltrim(sys_connect_by_path(IP_ADDR, '$@$'), '$@$') as IP_ADDR from ( select asso.case_id as case_id ,site.NAME as name ,site.SERVER_HOSTING_ADDRESS as SERVER_HOSTING_ADDRESS ,site.ICP_REC_NUM as ICP_REC_NUM ,site.ICP_REG_ADDR as ICP_REG_ADDR ,site.HOME_WEB_URL as HOME_WEB_URL ,site.IP_ADDR as IP_ADDR ,(row_number() over(partition by asso.case_id order by asso.case_id) ) numid from IPMS_CASE_SITE_ASSO asso,ipms_website site where asso.SITE_ID=site.id ) start with numid = 1 connect by numid - 1 = prior numid and case_id = prior case_id )
发表评论
-
SQL面试题二
2013-09-03 22:39 1587一道SQL语句面试题,关于group by 表内容: 2 ... -
面试SQL语句
2013-09-03 22:22 10851Get the average salary of e ... -
mysql语法与decode语法的不同
2012-12-07 11:06 1540这两天要把一个系统从oracle上移植到mysql上,顺便简单 ... -
数据库事务转载基础二:MySQL事务隔离级别详解
2012-06-19 13:01 877SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定 ... -
数据库事务转载基础二:oracle事务隔离级别
2012-06-19 12:57 887Oracle 支持的 2 种事务隔离级别 Read commi ... -
数据库事务转载基础一:oarcle事务
2012-06-19 12:48 1027Oracle事务 2010-11-29 14:22 ... -
oracle中使用sys_connect_by_path进行表中行值连接
2011-03-01 12:52 11972一、最原始的表说明 CREATE TABLE DATADIC ... -
oracle rownum 学习
2010-10-09 13:37 2836----oracle排序写法 SELECT * FROM ( ... -
oracle 10 TNSLSNR.EXE 占用了8080端口怎么办
2010-02-20 17:51 3917oracle 10服务一启动 TNSLSNR.exe 会占用8 ... -
解决ora-280000 the account is locked
2010-02-20 16:35 4278测试、运行程序时,一般使用服务器上的oracle服务,2010 ... -
oracle 中的几天后,几年后
2009-08-21 15:52 1768首先,需要记住Oracle里面的日期加减是按照天来计算的 ... -
ob 接oracle10时接不上怎么办?
2009-05-04 16:36 12771、打开BDE Administrator。 ... -
Union使用
2009-02-11 14:55 1115select subjectRecordNo as ... -
oracle中判断一个串中是否包含另一个串
2008-12-31 14:32 2732select decode(INSTR('CORPORATEa ... -
sum结果为null时,如果返回值是int型报错
2008-12-01 16:44 1978select nvl(sum(decode(sta ... -
oracle结构设计
2008-11-10 15:21 1259尽管Oracle系统本身已 ... -
Oracle的rownum原理和使用
2008-11-07 11:20 1249俺程序中用到的rownum分页+排序的实现(有机会仔细研究) ... -
oracle10数据库导入导出问题
2008-07-01 15:02 1719ob7.0 不支持oracle10的导入,只可以导出。 toa ... -
oracle中用START WITH...CONNECT BY PRIOR子句实现递归查询
2008-05-26 15:39 10193今天发现在oracle中的select语句可以用START W ... -
Oracle Discover产品简介
2008-03-03 10:50 4220Oracle Discoverer?是Oracle公司面向De ...
相关推荐
SQLServer 中将一个字段的多个记录值合并到一行显示的实现方法 SQL Server 是一种关系型数据库管理系统,具有强大的数据处理能力和存储能力。在实际应用中,我们经常需要将一个字段的多个记录值合并到一行显示,以...
效地减少数据库中的数据冗余,并为实现灵活的数据安全机制提供了基础。 • 支持存储过程 使用数据库创建应用程序时,过程语言是应用程序和数据库之间的主要编程接口。神通数据库中所提 供的过程语言是 plOSCAR。在...
3. 关系数据库设计:在关系数据库设计中,表中任意两行的值不能一样,行在表中的顺序无关紧要,列在表中的顺序无关紧要。 4. 数据库系统的体系结构:数据库系统的体系结构是一般来说数据库系统应具有三级模式体系...
新、旧行值的引用 触发器谓词 变异表 设计触发器的原则 触发器的删除 禁止和允许触发器 触发器应用举例 使用触发器实现审计功能 使用触发器维护数据完整性 使用触发器保障数据安全性 使用触发器派生字段...
1.如果规范化设计产生了许多 4 路或更多路合并关系,就可以考虑在数据库实体(表)中加入重复属性(列)。 2.常用的计算字段(如总计、最大值等)可以考虑存储到数据库实体中。 3.重新定义实体以减少外部属性数据或...
索引是对数据库表中一列或多列的值进行排序的一种结构,建立索引可以加快查询速度。 六、存储过程 存储过程是一组为了完成特定功能的 SQL 语句集,经编译后存储在数据库中。使用存储过程具备如下优点:重复使用、...
创建交叉表查询的教学目标是使学生掌握创建交叉表查询的操作技能,包括创建交叉表的行标题、列标题和值的设置,以及如何使用交叉表来分析和统计数据。 三、创建交叉表查询的教学方法 创建交叉表查询的教学方法可以...
关系是指一个表中的数据,包括行和列。函数依赖是指一个属性的值决定了另一个属性的值。 关系代数 关系代数是指对关系进行操作的数学理论。关系代数包括选择、投影、连接、交叉和差分等运算。这些运算可以用于对...
对于同一套数据库逻辑设计,不同的数据库产品有不同的实现方法,下面的表格列出了不同数据库产品的实现技术。 逻辑架构 实现技术 对称多处理器(SMP) 基本所有商业数据库都支持 Sharing Nothing架构(多分区数据库) ...
21510.2.1 创建传统的单列等值连接 21610.2.2 为查询结果集指定排序次序 21810.2.3 使用表之间的间接关系创建查询 21910.2.4 创建多列等值连接和选择唯一值 22010.3 使用表中的查找字段 22210.3.1 用查阅向导添加...
自己写的数据库装载工具,平时工作中用于装载大文本文件到数据库表,也能直接装载excel,不过excel只能使用第一个sheet,且不支持合并的单元格。 jdk要求版本1.6及以上。 使用方法: java -jar lynload.jar,即可看到...
例如,假设要从 T 表中选择 T1的行,那么运算式为:σ F(T),其中 F 为 T1。 投影运算符(Projection) 投影运算符用于从表中选择指定的属性值组成一个新表。投影运算符的记号为 Π(pi),其格式为:Π A(R),...
若要把多个 SELECT 语句的结果合并为一个结果,可用集合来完成。集合操作主要包括并操作 UNION、交操作 INTERSECT 和差操作 MINUS(EXCEPT)。 SQL SERVER 中的集合操作: * UNION:并操作,将多个 SELECT 语句的...
子查询用于计算每种资产类型的投资金额,并将其合并为总投资金额。 知识点: * 左连接(LEFT JOIN):用于连接两个表,其中左表中的每一行都将被返回,即使右表中没有匹配的行。 * 子查询(SUBQUERY):是一种嵌套...
21510.2.1 创建传统的单列等值连接 21610.2.2 为查询结果集指定排序次序 21810.2.3 使用表之间的间接关系创建查询 21910.2.4 创建多列等值连接和选择 唯一值 22010.3 使用表中的查找字段 22210.3.1 用查阅向导添加...
21510.2.1 创建传统的单列等值连接 21610.2.2 为查询结果集指定排序次序 21810.2.3 使用表之间的间接关系创建查询 21910.2.4 创建多列等值连接和选择唯一值 22010.3 使用表中的查找字段 22210.3.1 用查阅向导添加...
21510.2.1 创建传统的单列等值连接 21610.2.2 为查询结果集指定排序次序 21810.2.3 使用表之间的间接关系创建查询 21910.2.4 创建多列等值连接和选择 唯一值 22010.3 使用表中的查找字段 22210.3.1 用查阅向导添加...
21510.2.1 创建传统的单列等值连接 21610.2.2 为查询结果集指定排序次序 21810.2.3 使用表之间的间接关系创建查询 21910.2.4 创建多列等值连接和选择唯一值 22010.3 使用表中的查找字段 22210.3.1 用查阅向导添加...
21510.2.1 创建传统的单列等值连接 21610.2.2 为查询结果集指定排序次序 21810.2.3 使用表之间的间接关系创建查询 21910.2.4 创建多列等值连接和选择唯一值 22010.3 使用表中的查找字段 22210.3.1 用查阅向导添加...