简单问题实现(18,10,19) 100分,
SHOKUIN_NO KINMU_YMD TOKKIN_CODEUPDATE_YMDINSERT_YMD
00000120070207 10 200702141307232007/02/11 13:07:23
00000120070207 18 200702131307232007/02/12 13:07:23
00000120070207 19 200702151307232007/02/12 13:07:23
--------------------------------------------
上面的数据如何实现下面的结果:注(TOKKIN_CODE,要按照ORDER BY UPDATE_YMD,INSERT_YMD 升序排序)
结果如下
00000120070207 18,10,19
[解决办法]
用函数实现:
CREATE OR REPLACE FUNCTION get_code(IS_SHOKUIN_NO VARCHAR2,IS_KINMU_YMD VARCHAR2)
RETURN VARCHAR2
IS
col_code VARCHAR2(4000);
BEGIN
FOR cur IN (SELECT TOKKIN_CODE FROM t WHERE SHOKUIN_NO=IS_SHOKUIN_NO AND KINMU_YMD=IS_KINMU_YMD ORDER BY UPDATE_YMD,INSERT_YMD) LOOP
col_code := col_code|| ', '||cur.TOKKIN_CODE;
END LOOP;
col_code := ltrim(col_code, ', ');
RETURN col_code;
END;
/
SELECT DISTINCT SHOKUIN_NO,KINMU_YMD,get_code(SHOKUIN_NO,KINMU_YMD) TOKKIN_CODE FROM TABLENAME;
[解决办法]
用程序实现吧