zoukankan      html  css  js  c++  java
  • 数据结果集拼接到一行

    摘要:本文展示了,如何将查询结果集中的列数据拼接到一行内

    数据库:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

    现在有如下表,表名TEST_TABLE,数据如下图

    希望将NAME列和REMARKS列中的数据拼接到一行。

    这里我们使用Oracle的层次查询和SYS_CONNECT_BY_PATH函数来达到目的,查询语句如下:

    SELECT
      SYS_CONNECT_BY_PATH(NAME,',') AS N,
      SYS_CONNECT_BY_PATH(REMARKS,',') AS R
    FROM(
      SELECT
        ID,
        LAG(ID) OVER(ORDER BY ID) AS PID,
        NAME,
        REMARKS,
        COUNT(ID) OVER() NUM
      FROM TEST_TABLE) T
    WHERE LEVEL = T.NUM
    START WITH T.PID IS NULL

    语句运行结果如下:

    用LAG函数为每行数据指定父数据,这样使得整个表有了层次关系。

    SYS_CONNECT_BY_PATH 函数的作用是将从父节点到当前行内容以“path”或者层次元素列表的形式显示出来,在这里用来拼接数据。

  • 相关阅读:
    activiti--操作例子
    activiti--服务表
    spring--加载资源文件
    Day17
    Day15
    Day14
    Day13
    Day12
    Day16
    Day11
  • 原文地址:https://www.cnblogs.com/shenyuelan/p/3069992.html
Copyright © 2011-2022 走看看