【SQL 分析函数】wm_concat 行列转换

简介: SQL> select deptno,hiredate,ename from emp order by 1,2;     DEPTNO HIREDATE       ENAME                                          ...

SQL> select deptno,hiredate,ename from emp order by 1,2;

    DEPTNO HIREDATE       ENAME                                                
---------- -------------- ----------                                           
        10 09-6月 -81     CLARK                                                
        10 17-11月-81     KING                                                 
        10 23-1月 -82     MILLER                                               
        20 17-12月-80     SMITH                                                
        20 02-4月 -81     JONES                                                
        20 03-12月-81     FORD                                                 
        20 19-4月 -87     SCOTT                                                
        20 23-5月 -87     ADAMS                                                
        30 20-2月 -81     ALLEN                                                
        30 22-2月 -81     WARD                                                 
        30 01-5月 -81     BLAKE
        30 08-9月 -81     TURNER                                               
        30 28-9月 -81     MARTIN                                               
        30 03-12月-81     JAMES                                                

已选择14行。
SQL> select deptno ,
  2  max (ename) ename
  3  from
  4  ( select deptno,
  5  wm_concat(ename) over (partition by deptno order by hiredate) ename
  6  from emp )
  7  group by deptno;
    DEPTNO ENAME                                                               
---------- --------------------------------------------------                  
        10 CLARK,KING,MILLER                                                   
        20 SMITH,JONES,FORD,SCOTT,ADAMS                                        
        30 ALLEN,WARD,BLAKE,TURNER,MARTIN,JAMES                                
SQL> select wm_concat(ename) as result from (select ename from emp order by ename asc);
RESULT                                                                         
-----------------------------------------------------------------------------------
ADAMS,ALLEN,BLAKE,CLARK,FORD,JAMES,JONES,KING,MARTIN,MILLER,SCOTT,SMITH,TURNER,WARD  

目录
相关文章
|
11月前
|
Oracle 关系型数据库 MySQL
oracle 行转列函数 wm_concat(列)
oracle 行转列函数 wm_concat(列)
541 0
|
SQL
SQL中的行转列和列转行
SQL是IT行业很多岗位都要求具备的一项能力,对于数据岗位而言更是如此,甚至说扎实的SQL基础也往往是入职这些岗位的必备技能。而在SQL面试中,一道出镜频率很高的题目就是行转列和列转行的问题,可以说这也是一道经典的SQL题目,本文就这一问题做以介绍分享。
833 0
SQL中的行转列和列转行
|
SQL
SQL中行转列、列转行
SQL中行转列、列转行
215 0
SQL中行转列、列转行
|
SQL HIVE
SQL之行列转换
Hive 查询语句之行列转换
128 0
|
SQL 数据安全/隐私保护