Professional Documents
Culture Documents
*************************
********************************************************************************
*************************
*************************** TO GET THE FULL NAME OF ONE CHILD *
*************************
********************************************************************************
*************************
********************************************************************************
*************************
********************************************************************************
*************************
SELECT
GOV_CODE,
SUBSTR(MAX(REPLACE(
SYS_CONNECT_BY_PATH(GOV_NAME, '/')
,'/',' - ')),4) GOV_NAME
FROM (
select A.*,
row_number() OVER (Partition by GOV_CODE order by GOV_CODE) ROW#
from INFLU.L_GOV A)
WHERE LEVEL = (SELECT MAX(LEVEL) FROM INFLU.L_GOV CONNECT BY PRIOR GOV_PARENT_CO
DE = GOV_CODE START WITH GOV_PARENT_CODE = X )
CONNECT BY PRIOR GOV_PARENT_CODE = GOV_CODE
START WITH GOV_PARENT_CODE = X AND GOV_CODE = 13
GROUP BY GOV_CODE
-- X IS THE PARENT CODE OF THE MOST LAST LEAFE
CREATE TABLE L_GOV
(
GOV_CODE NUMBER(5),
GOV_NAME VARCHAR2(200 BYTE),
GOV_PARENT_CODE NUMBER(5),
GOV_FULLNAME VARCHAR2(1000 BYTE)
)
TABLESPACE USERS
PCTUSED 0
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;
********************************************************************************
*************************
********************************************************************************
*************************
*************************** THE ORIGENAL CODE ********
*************************
********************************************************************************
*************************
********************************************************************************
*************************
********************************************************************************
*************************
SELECT
GOV_CODE,
SUBSTR(MAX(REPLACE(
SYS_CONNECT_BY_PATH(GOV_NAME, '/')
,'/',' - ')),2) Concatenated_String
FROM (
select A.*,
row_number() OVER (Partition by GOV_CODE order by GOV_CODE) ROW#
from INFLU.L_GOV A)
CONNECT BY PRIOR GOV_PARENT_CODE = GOV_CODE
START WITH GOV_PARENT_CODE = 5
GROUP BY GOV_CODE