- 浏览: 778631 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 1610一道SQL语句面试题,关于group by 表内容: 2 ... -
面试SQL语句
2013-09-03 22:22 11351Get the average salary of e ... -
mysql语法与decode语法的不同
2012-12-07 11:06 1563这两天要把一个系统从oracle上移植到mysql上,顺便简单 ... -
数据库事务转载基础二:MySQL事务隔离级别详解
2012-06-19 13:01 902SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定 ... -
数据库事务转载基础二:oracle事务隔离级别
2012-06-19 12:57 908Oracle 支持的 2 种事务隔离级别 Read commi ... -
数据库事务转载基础一:oarcle事务
2012-06-19 12:48 1058Oracle事务 2010-11-29 14:22 ... -
oracle中使用sys_connect_by_path进行表中行值连接
2011-03-01 12:52 12029一、最原始的表说明 CREATE TABLE DATADIC ... -
oracle rownum 学习
2010-10-09 13:37 2864----oracle排序写法 SELECT * FROM ( ... -
oracle 10 TNSLSNR.EXE 占用了8080端口怎么办
2010-02-20 17:51 3944oracle 10服务一启动 TNSLSNR.exe 会占用8 ... -
解决ora-280000 the account is locked
2010-02-20 16:35 4315测试、运行程序时,一般使用服务器上的oracle服务,2010 ... -
oracle 中的几天后,几年后
2009-08-21 15:52 1794首先,需要记住Oracle里面的日期加减是按照天来计算的 ... -
ob 接oracle10时接不上怎么办?
2009-05-04 16:36 12971、打开BDE Administrator。 ... -
Union使用
2009-02-11 14:55 1141select subjectRecordNo as ... -
oracle中判断一个串中是否包含另一个串
2008-12-31 14:32 2779select decode(INSTR('CORPORATEa ... -
sum结果为null时,如果返回值是int型报错
2008-12-01 16:44 2012select nvl(sum(decode(sta ... -
oracle结构设计
2008-11-10 15:21 1274尽管Oracle系统本身已 ... -
Oracle的rownum原理和使用
2008-11-07 11:20 1278俺程序中用到的rownum分页+排序的实现(有机会仔细研究) ... -
oracle10数据库导入导出问题
2008-07-01 15:02 1742ob7.0 不支持oracle10的导入,只可以导出。 toa ... -
oracle中用START WITH...CONNECT BY PRIOR子句实现递归查询
2008-05-26 15:39 10231今天发现在oracle中的select语句可以用START W ... -
Oracle Discover产品简介
2008-03-03 10:50 4236Oracle Discoverer?是Oracle公司面向De ...
相关推荐
总之,合并列数据是数据库管理中的一种常见需求,可以通过自定义函数或存储过程实现。在SQL Server中,如果涉及到.NET组件,可能需要启用CLR支持。在进行此类操作时,务必理解其潜在影响,并遵循最佳实践,以避免...
- **描述**:“合并列值”进一步强调了文章的主要目的:介绍一种方法来实现列值的合并。 #### 关键词解析 - **合并**:指的是将多个数据项组合成一个单一的数据项。 - **列值**:指的是数据库表中某一列的所有行...
在数据库管理与开发过程中,经常会遇到需要将表中的两列数据合并为一列的情况。这种需求常见于数据清洗、报表生成或数据展示等场景。不同的数据库管理系统(Database Management System,DBMS)提供了各自的方法来...
这个问题在传统的表格布局中可能不那么突出,但在复杂报表设计中,尤其是数据分组时,重复列的合并显得尤为重要,因为它可以有效地节省空间并提高报表的可读性。本文将详细介绍一种解决方案,即利用子报表的方式来...
1. **多列合并**:除了基于单列进行合并外,还可以根据多列的组合值来决定行的合并,这需要对代码进行相应的调整,可能涉及到更复杂的比较逻辑。 2. **性能优化**:在处理大数据量时,直接在UI层进行行合并可能会...
SQLServer 中将一个字段的多个记录值合并到一行显示的实现方法 SQL Server 是一种关系型数据库管理系统,具有强大的数据处理能力和存储能力。在实际应用中,我们经常需要将一个字段的多个记录值合并到一行显示,以...
标题中的“根据相同的key合并值(行转列)”是指在数据处理中的一种常见操作,它通常涉及到数据库查询、数据分析或编程中的数据整理。这个过程旨在将具有相同标识键(key)的数据行聚合到一起,将多行数据转换为单行,...
1. **SQL行转列**:在数据库查询中,Pivot操作用于将行数据转换为列数据。例如,原本存储在多行中的某个分类下的产品信息可以通过Pivot转换为每种产品类别占一列的形式。在SQL Server中,可以使用PIVOT关键字实现;...
标题中的“table根据第一列将同名行合并(合并行)”指的是在处理表格数据时,如果发现连续的行具有相同的某一列(通常是第一列)的值,我们可以将这些行进行合并,只保留一行并整合其他列的信息。这种操作在数据分析...
在表格(Table)设计中,有时我们需要合并单元格来达到特定的展示效果,例如创建标题行或列,或者为了美观和布局对齐。在HTML、CSS以及JavaScript中,都有多种方式可以实现单元格的合并。这里我们将详细探讨六种合并...
位图索引是一种轻量级的索引类型,特别适合于列值较少的情况。位图索引将每个不同的值映射到一个位向量上,位向量中的每一位表示该行是否含有对应的值。 **位向量压缩**:通过分段长度编码等方式对位向量进行压缩,...
整个过程可以理解为:为每个列创建一个IF函数,检查列值是否为null,然后将结果合并到一个单一的表达式或列中。这在SQL查询中很有用,特别是当你想要避免因null值而引发的错误或者在合并数据时保持一致性。 在实际...
在默认情况下,每个单元格都是独立的,但通过编程方式,我们可以实现跨行或跨列的单元格合并。 合并单元格的基本思想是设置`DataGridView`的`DefaultCellStyle`属性,特别是`MergeStyle`属性。`MergeStyle`有几种...
- **转换逻辑**: 在遍历过程中,根据需要将行数据拆分成列,或者将多个列数据合并成一行。 3. Java 8 Stream API: - Java 8引入的Stream API提供了函数式编程的能力,可以优雅地处理数据转换。例如,可以使用...
`这行代码会在子表中添加一个名为Name的新列,其值来自于父表的相关记录。 最后,对于查询条件,可以通过对DataSet的表进行过滤,或者在GridView上设置数据绑定时提供筛选条件。在给定的代码片段中,虽然没有显示...
在SQL Server中,可以通过这种方式轻松地将多行数据转换为单行数据,实现列的合并。 #### 3. 示例代码解析 提供的示例代码展示了如何使用`FOR XML PATH`来合并一列数据: ```sql SELECT -- 使用STUFF函数去除第...
这通常用于将多列的值合并到一列中,同时创建一个新列来标识原列的位置。比如,如果我们的数据表有年份、产品和销售额三列,而我们希望按产品查看历年销售额,可以将年份列转为行,这样每个产品的历年销售额都会在...
下面的方法是在 ASP.NET 中合并 GridView 中某列相同信息的行的一种实现方式。该方法名为 `GroupRows`,接受两个参数:一个 `GridView` 对象和一个整型数字,表示需要合并的列的索引。 ```csharp public static ...
在这个事件中,你可以访问当前单元格的信息,比如值、列索引、行索引等,然后根据业务逻辑判断是否应该合并。 ```delphi procedure TForm1.DBGridEh1DrawColumnCell(Sender: TObject; const Canvas: TCanvas; ...
在传统的表格布局中,每个单元格(cell)代表一行一列的交叉点,而合并单元格则是将多个相邻的单元格合并为一个大的单元格,这在显示分组数据、创建标题或者简化布局时特别有用。在GridView中,我们可以通过编程的...