ORACLE 多列合并成一行数据 WM_CONCAT函数以及REPLACE

SELECT ( --SELECT  REPLACE(SBPT.PARKSTIME||‘~‘||SBPT.PARKETIME,‘,‘) REPLACE也可以
  SELECT   WM_CONCAT(SBPT.PARKSTIME||‘~‘||SBPT.PARKETIME)
  SAREE FROM
  SYS_BERTHANDTYPE SBT LEFT JOIN
   SYS_BERTHTYPEPARKTIME SBPT
   ON SBT.BERTHTYPEID = SBPT.BERTHTYPEID WHERE BERTHCODE=‘114163‘ AND
    SBPT.DATETYPE = 1 AND  SBPT.ISALLOW = 2)
    NOTALLOWTIMESPAN,
 WM_CONCAT(SUBSTR(TO_CHAR(FREESTARTTIME,‘YYYY-MM-DD HH24:MI:SS‘),11,9)||‘~‘||SUBSTR(TO_CHAR(FREEENDTIME,‘YYYY-MM-DD HH24:MI:SS‘),11,9))
   FREETIMESPAN  FROM TRA_PRICINGBERTH  TPB
   LEFT JOIN TRA_PRICINGFREE TPF
  ON TPB.PRICINGSTRATEGYID = TPF.PRICINGSTRATEGYID
 WHERE BERTHCODE=‘114163‘ AND FREEDATETYPE=1 GROUP BY BERTHCODE

WM_CONCAT 合并成一行数据列 数据量大会超出字符长度

SELECT wm_concat(sbpt.ParkStime||‘~‘||sbpt.ParkEtime) FROM SYS_BerthTypeParkTime sbpt

REPLACE 分成多列
SELECT  REPLACE(sbpt.ParkStime||‘~‘||sbpt.ParkEtime,‘,‘)
 FROM SYS_BerthTypeParkTime sbpt

时间: 2024-11-05 19:33:37

ORACLE 多列合并成一行数据 WM_CONCAT函数以及REPLACE的相关文章

mysql中将多行数据合并成一行数据

一个字段可能对应多条数据,用mysql实现将多行数据合并成一行数据 例如:一个活动id(activeId)对应多个模块名(modelName),按照一般的sql语句: 1 SELECT am.activeId,m.modelName 2 FROM activemodel am 3 JOIN model m 4 ON am.modelId = m.modelId 5 ORDER BY am.activeId 查询出的列表为图1所示: 图1 修改过后的sql语句,查询后如图2所示: 1 SELECT

TSQL--按某字段列分组,在将各组中某列合并成一行

鉴于群里很多同事在问这个问题,我简单写个Demo,希望对初学者有帮助! 无真相,无解说,不解释,直接上Code! --================================================== --示例代码,仅供参考 --按照object_id分组,将同一组的name列的值合并在一起 SELECT OBJECT_NAME(T1.object_id) AS ObjectName , ( SELECT T2.name + ',' FROM sys.all_columns T

oracle多行合并成一行

在mysql有关键字group_concat提供了类似的功能,在oracle中类似功能关键字是wm_concat.比如我有如下查询数据: 但是我希望能够显示成一行查询出来,结果图如下: 关键sql代码形如: select t.sglcheckid,wm_concat(t.salemodulename) from t_item_group_ex t where t.sglcheckid = '000********004' group by t.sglcheckid mysql 多行合并成一行的解

oracle查询多行数据合并成一行数据

如果是oracle 10g以上 一个wm_concat函数就可以解决. 如果是oracle 9i以下就有点麻烦了. 表结构如下: NAME Null Type ------------------------ --------- ----- N_SEC_CODE NOT NULL CHAR(6) C_RESEARCHER_CODE NOT NULL VARCHAR2(20) 此表保存了“股票”与“研究员”的对应关系数据,一般而言,对于同一只股票而言,可能有多个研究员 对其进行跟踪研究.所以目前遇

SQLServer 中多行数据合并成一行数据(一个字段)

需求:有四行数据,如下: 1.苹果 2.橘子 3.桃子 4.波罗 合并成一个字段:苹果,橘子,桃子,波罗: 需求明确之后,先弄点测试数据,上代码: --创建一个临时表 Create table #temp ( testName varchar(20) ) --写入测试数据 INSERT INTO #temp(testName) values('苹果'); INSERT INTO #temp(testName) values('橘子'); INSERT INTO #temp(testName) v

Oracle一列的多行数据拼成一行显示字符

Oracle一列的多行数据拼成一行显示字符 oracle 提供了两个函数WMSYS.WM_CONCAT 和 ListAgg函数. www.2cto.com 先介绍:WMSYS.WM_CONCAT 例: id  name 1   aa 2   bb 3   cc 要的结果是"aa,bb,cc" select WMSYS.WM_CONCAT(a.name) from user a 这样的话,查询出的结果:"aa,bb,cc" www.2cto.com 分隔符如果不需要用

SQL 将一条记录中多个字段的值拼接为一个字段 && 将多行数据合并成一行,并且拼接CONVERT() 、for xml path的使用

接着上篇文章的订单表(商品编号,价格设置时间id(类似于创建时间,创建时间约早,则act_id越小) ,价格的时间段,商品价格) 一.将一条记录中多个字段的值拼接为一个字段 现要求将两个时间段合并为一个字段,应该如何做呢? 先来看下理想的结果: 查询出的时间段合并到一起了: 代码如下,将查询的字段用+'你想要的符号' + 拼接即可 select item,act_id,loc_id,convert(varchar(100),start_date,20)+ '-' +convert(varchar

mysql 将多个查询结果合并成一行

mysql中的多行查询结果合并成一个 SELECT GROUP_CONCAT(md.data1) FROM DATA md,contacts cc WHERE md.conskey=cc.id AND md.mimetype_id= 5 AND md.user_id=17: 利用函数:group_concat(),实现一个ID对应多个名称时,原本为多行数据,把名称合并成一行,如|1 | 10,20,20| 本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select

随机获取oracle数据库中的任意一行数据(rownum)

最近看oracle资料的时候,了解rownum的概念,以前只知道对数据库表进行简单的增删改查: 看到了rownum的概念后,突然想到了好多业务场景应该都可以适用的,比如在进行随机发奖的时候, 我们就可以从先查一下奖品表中可以发的总奖品数,然后通过java的Random类在总奖品数内生成一个随机整数X,然后调用 select * from (select rownum no,id from Table where rownum<=X ) where no >=X 获取出该条奖品,这样获取出来的值