且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在Oracle SQL中将行转换为列

更新时间:2023-01-20 14:46:06

如果您对串联列表没问题,请使用中引入的 LISTAGG .

If you are OK with concatenated list, then use LISTAGG which was introduced in Oracle 11g Release 2.

SELECT weekday, LISTAGG(Sched_hrs, ',') WITHIN GROUP (ORDER BY weekday) AS Sched_hrs
FROM   table 
 WHERE emplid = '12345' AND weekday_name= 1
GROUP BY weekday;

例如

SQL> column employees format a50
SQL> SELECT deptno, LISTAGG(ename, ',') WITHIN GROUP (ORDER BY ename) AS employees
  2  FROM   emp
  3  GROUP BY deptno;

    DEPTNO EMPLOYEES
---------- --------------------------------------------------
        10 CLARK,KING,MILLER
        20 ADAMS,FORD,JONES,SCOTT,SMITH
        30 ALLEN,BLAKE,JAMES,MARTIN,TURNER,WARD

SQL>