DROP TABLE "ZYH_TEST" ;
CREATE TABLE "ZYH_TEST" (
"ID" NUMBER( 19 ) NOT NULL ,
"NAME" VARCHAR2( 255 BYTE) ,
"CREATETIME" DATE ,
"SCORE" NUMBER ,
"CLASSID" VARCHAR2( 255 BYTE)
)
INSERT INTO "ZYH_TEST" VALUES ( '1' , 'allen' , TO_DATE( '2019-01-14 17:41:09' , 'SYYYY-MM-DD HH24:MI:SS' ) , '98.5' , '1' ) ;
INSERT INTO "ZYH_TEST" VALUES ( '2' , 'lee' , TO_DATE( '2019-01-14 17:41:37' , 'SYYYY-MM-DD HH24:MI:SS' ) , '88.5' , '1' ) ;
INSERT INTO "ZYH_TEST" VALUES ( '3' , 'me' , TO_DATE( '2019-01-14 17:41:52' , 'SYYYY-MM-DD HH24:MI:SS' ) , '73' , '1' ) ;
INSERT INTO "ZYH_TEST" VALUES ( '4' , 'let' , TO_DATE( '2019-01-14 17:42:03' , 'SYYYY-MM-DD HH24:MI:SS' ) , '88' , '1' ) ;
INSERT INTO "ZYH_TEST" VALUES ( '5' , 'met' , TO_DATE( '2019-01-14 17:42:16' , 'SYYYY-MM-DD HH24:MI:SS' ) , '99' , '1' ) ;
INSERT INTO "ZYH_TEST" VALUES ( '6' , 'ali' , TO_DATE( '2019-01-14 17:42:30' , 'SYYYY-MM-DD HH24:MI:SS' ) , '66' , '1' ) ;
INSERT INTO "ZYH_TEST" VALUES ( '7' , 'avicii' , TO_DATE( '2019-01-15 12:41:09' , 'SYYYY-MM-DD HH24:MI:SS' ) , '73' , '2' ) ;
INSERT INTO "ZYH_TEST" VALUES ( '8' , 'martin' , TO_DATE( '2019-01-15 12:41:37' , 'SYYYY-MM-DD HH24:MI:SS' ) , '76' , '2' ) ;
INSERT INTO "ZYH_TEST" VALUES ( '9' , 'ajx' , TO_DATE( '2019-01-15 12:41:52' , 'SYYYY-MM-DD HH24:MI:SS' ) , '91' , '2' ) ;
INSERT INTO "ZYH_TEST" VALUES ( '10' , 'atlan' , TO_DATE( '2019-01-15 12:42:03' , 'SYYYY-MM-DD HH24:MI:SS' ) , '60' , '3' ) ;
INSERT INTO "ZYH_TEST" VALUES ( '11' , 'bill' , TO_DATE( '2019-01-15 12:42:16' , 'SYYYY-MM-DD HH24:MI:SS' ) , '78' , '3' ) ;
INSERT INTO "ZYH_TEST" VALUES ( '12' , 'bite' , TO_DATE( '2019-01-15 12:42:30' , 'SYYYY-MM-DD HH24:MI:SS' ) , '89' , '3' ) ;
示例
listagg( 列字段, '分隔符' ) within group ( order by 排序字段)
select listagg( name, ',' ) within group ( order by score) 合并后的姓名 from zyh_test WHERE score > 70 ;
select classid 班级, listagg( name, ',' ) within group ( order by score) 合并后的姓名 from zyh_test WHERE score > 70 GROUP BY classid;
select name 姓名, score 分数, classid 班级, listagg( name, ',' ) within group ( order by score) over ( partition by classid) 合并后的姓名 from zyh_test ORDER BY classid, score;