Oracleは、同じフィールドの値は、文字列に対して複数の接続を記録します

 

文字列に接続された複数のレコードのOracleの分野、

CREATE  TABLEのt_test 
  ID NUMBER  PRIMARY  KEY 
  グレードVARCHAR220 
  のuname VARCHAR220 
)。

挿入  t_test 1' A '' zhang1 ' )。
挿入  t_test 2' A '' wang2 ' )。
インサート t_test 3' A '' LI3 ' )。
挿入  t_test 4' A '' wang2 ' )。
挿入  t_test 5' B '' zhao4 ' )。
挿入  t_test 6' A '' liu5 ' );
挿入  t_test 7' B '' qi6 ' )。
挿入  t_test 8' B '' LU7 ' )。

SELECT グレード、
       SUBSTR(MAX(SYS_CONNECT_BY_PATH(のuname、' '))、 2 )のuname
   FROMSELECT グレード、 
               、のunameを 
               RN、
               LEAD(RN)OVER(PARTITION BYグレードORDER  BY RN)RN1
           FROMSELECT グレードを、
                       のuname、
                       ROW_NUMBER()OVERORDER  BY )のuname RN
                   FROM t_test))
 START WITH RN1 IS  NULL 
CONNECTは、BY RN1 = 先行RN
  GROUP  BY グレード。

       GRADEのUNAME 
1    zhang1、wang2、wang2、liu5、LI3
 2     Bのzhao4、qi6、LU7

 

おすすめ

転載: www.cnblogs.com/LinuSiyu/p/11573570.html