首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

简单有关问题实现(18,10,19) 100分

2012-01-03 
简单问题实现(18,10,19) 100分,SHOKUIN_NOKINMU_YMDTOKKIN_CODEUPDATE_YMDINSERT_YMD00000120070207102007

简单问题实现(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;
[解决办法]
用程序实现吧

热点排行
Bad Request.