ORACLE实现多行合并一行的SQL写法
项目中遇到一个需求,需要将多行合并为一行。
表结构如下:
NAME Null Type
------------------------ --------- -----
N_SEC_CODE NOT NULL CHAR(6)
C_RESEARCHER_CODE NOT NULL VARCHAR2(20)
此表保存了“股票”与“研究员”的对应关系数据,一般而言,对于同一只股票而言,可能有多个研究员
对其进行跟踪研究。所以目前遇到一个要求,需查询出每只股票和对应的研究员(研究员代码间,使用逗号分隔)。
例如有如下数据:
000297 chenpeng
000297 liusu
合并处理后需显示为:
000297 chenpeng,liusu
网上查了很多方法,但通常而言都是编写自定义多行文本合并函数,或者对支持的列数具有局限性。
最后在英文google中搜到如下比较巧的方法。不用在数据库中增加function,纯SQL一次性搞定,
而且扩充性很好,没有列的限制。
主要SQL如下:
SELECT n_sec_code, TRANSLATE (LTRIM (text, '/'), '*/', '*,') researcherList
from (SELECT ROW_NUMBE
相关文档:
清空日志
1.打开查询分析器,输入命令
DUMP TRANSACTION 数据库名 WITH NO_LOG
2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
......
分页sql查询在编程的应用很多,主要有存储过程分页和sql分页两种,我比较喜欢用sql分页,主要是很方便。为了提高查询效率,应在排序字段上加索引。sql分页查询的原理很简单,比如你要查100条数据中的30-40条,你先查询出前40条,再把这30条倒序,再查出这倒序后的前十条,最后把这十条倒序就是你想要的结果。
  ......
今天总结下oracle的任务队列管理器(job queue ),以后也方便查询.
我们要做定时任务时,有两种办法
一种是: 操作系统的定时,win的定时任务,unix的crontab
一种是: 数据库级的定时,她的效率更高,
再有大量的表级操作时,建议用数据库本身的job queue,这样方便,效率高;如果用系统级定时,
会增加很多编程工作,成本增加 ......
在一个表中,其中几个字段的值是一样的,按照这几个字段进行分组并合并数据。
表A id name role
1 张三 &nb ......
Oracle
一、数据库语言:
DCL:数据库控制语言(如事务...)
DQL:数据库查询语言(select...)
DDL:数据库定义语言(create)
DML:数据库操作语言(更新....)
二、Oracle版本:
Oracle8I i:互联网
Oracle10g g:网格:把复杂的问题分布处理,最后把结果综合成最总结果
把复杂的问题分布处理,最后把结果综� ......