实现多行合并一行的SQL写法
[ORACLE]
项目中遇到一个需求,需要将多行合并为一行。
表结构如下:
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, '/'), '*/', '*,') rese
相关文档:
在数据库的开发过程中,经常会遇到复杂的业务逻辑和对数据库的操作,这个时候就会用SP来封装数据库操作。如果项目的SP较多,书写又没有一定的规范,将会影响以后的系统维护困难和大SP逻辑的难以理解,另外如果数据库的数据量大或者项目对SP的性能要求很,就会遇到优化的问题,否则速度有可能很慢,经过亲身经验,一个经 ......
USE [haitest]
GO
/****** 对象: Table [dbo].[haiTable] 脚本日期: 03/13/2010 20:10:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[haiTable](
[buy_original_ticket] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[buy_id] [nvar ......
性能监控之监控SQL语句
分析表
analyze table tablename compute statistics for all indexes;
analyze table tablename compute statistics for all indexed columns;
analyze table tablename compute statistics for table;
监控事例的等待
select event,sum(decode(wait_Tim ......
使用PowerDesigner生成数据库
建表SQL
脚
本时,尤其是Oracle数据库时,表名一般会带引号。其实加引号是PL/SQL的规范,数据库会严格按照“”中的名称建表,如果没有“”,会按照
ORACLE默认的设置建表(DBA
STUDIO里面),默认是全部大写,这样,在ORACLE数据库里的字段就如“Column_1&rdqu ......
题目一:
有两张表:部门表department 部门编号dept_id 部门名称dept_name
员工表employee 员工编号emp_id ......