²Þ²Ù´Â °³¹ßÀÚ, DBA Ä¿¹Â´ÏƼ oracleclub.com
 
ÅëÇÕ°Ë»ö : Searched by NAVER
DB°Ë»ö :
¸ðµÎÆîÄ¡±â | ¸ðµÎ´Ý±â

¿À¶óŬ ÄûÁî ¹× Æ©´× ¹®Á¦ oracleclub.com
Àç¹Õ³×¿ä~
¼Õ´Ô : 2008-08-14 02:29  
http://www.oracleclub.com/article/20805

SELECT ’Y’||GRO1 XY,
    MIN(DECODE(GRO2,1,DECODE(CHK1+CHK2,2,NO))) X1,
    MIN(DECODE(GRO2,2,DECODE(CHK1+CHK2,2,NO))) X2,
    MIN(DECODE(GRO2,3,DECODE(CHK1+CHK2,2,NO))) X3,
    MIN(DECODE(GRO2,4,DECODE(CHK1+CHK2,2,NO))) X4,
    MIN(DECODE(GRO2,5,DECODE(CHK1+CHK2,2,NO))) X5,
    MIN(DECODE(GRO2,6,DECODE(CHK1+CHK2,2,NO))) X6,
    MIN(DECODE(GRO2,7,DECODE(CHK1+CHK2,2,NO))) X7,
    MIN(DECODE(GRO2,8,DECODE(CHK1+CHK2,2,NO))) X8,
    MIN(DECODE(GRO2,9,DECODE(CHK1+CHK2,2,NO))) X9,
    MIN(DECODE(GRO2,0,DECODE(CHK1+CHK2,2,NO))) X10
FROM
 (
 SELECT NO,
     TO_CHAR(CEIL(NO/10),’FM09’) GRO1,
     MOD(NO,10) GRO2,
     CASE WHEN NO BETWEEN 10*(RD_FR-(DECODE(RD_MOD,10,2,1)+PO_LV))+1 AND 10*(RD_FR+(DECODE(RD_MOD,10,1,2)+PO_LV))
       THEN 1
    ELSE 0 END CHK1,
     CASE WHEN NO_MOD BETWEEN RD_MOD-:PO_LV AND RD_MOD+:PO_LV
       THEN 1
    ELSE 0 END CHK2
 FROM
  (
  SELECT LEVEL NO,
      DECODE(MOD(LEVEL,10),0,10,MOD(LEVEL,10)) NO_MOD,
      FLOOR(:RD_NO/10) RD_FR,
      DECODE(MOD(:RD_NO,10),0,10,MOD(:RD_NO,10)) RD_MOD,
      :PO_LV-1 PO_LV
  FROM DUAL
  CONNECT BY LEVEL <= 100
  )
 )
GROUP BY GRO1 
ORDER BY GRO1;

±×³É Á¶±Ý ´Ù¸£°Ô Ç®¾îºÃ½À´Ï´Ù.

SELECT GRO1,
    REPLACE(XMLAGG(XMLELEMENT(NO,’ ’||NO) ORDER BY GRO2).EXTRACT(’//text()’).GetStringVal(),'#',' ') NUM
FROM
 (
 SELECT DECODE(CHK1+CHK2,2,NO,’###’) NO,
     ’Y’||GRO1 GRO1,
     GRO2
 FROM     
  (
  SELECT TO_CHAR(NO,’FM099’) NO,
      TO_CHAR(CEIL(NO/30),’FM09’) GRO1,
      DECODE(MOD(NO,30),0,30,MOD(NO,30)) GRO2,
      CASE WHEN NO BETWEEN 30*(RD_FR-(DECODE(RD_MOD,30,2,1)+PO_LV))+1 AND 30*(RD_FR+(DECODE(RD_MOD,30,1,2)+PO_LV))
        THEN 1
     ELSE 0 END CHK1,
      CASE WHEN NO_MOD BETWEEN RD_MOD-:PO_LV AND RD_MOD+:PO_LV
        THEN 1
     ELSE 0 END CHK2
  FROM
   (
   SELECT LEVEL NO,
       DECODE(MOD(LEVEL,30),0,30,MOD(LEVEL,30)) NO_MOD,
       FLOOR(:RD_NO/30) RD_FR,
       DECODE(MOD(:RD_NO,30),0,30,MOD(:RD_NO,30)) RD_MOD,
       :PO_LV-1 PO_LV
   FROM DUAL
   CONNECT BY LEVEL <= 30*30
   )
  )
 ) 
GROUP BY GRO1;

 

 

 

Á¶È¸¼ö 397,  Ãßõ¼ö 3
µî·Ï ±Û´äº¯ ±Û¼öÁ¤ ±Û»èÁ¦ ¸ñ·Ïº¸±â
À̸§ ¾²±â
ºñ¹Ð¹øÈ£
¿À·£¸¸¿¡ ÄûÁî¿ä~^^* ¹ÚÁ¾Á¤ 2008-08-04 17:40 1148
Àç¹Õ³×¿ä~ ¼Õ´Ô 2008-08-14 02:29 397
µµ¿ò Áֽô °÷