if I want to select a node's all children
create or replace FUNCTION GET_NEGO_OUR_TEAM
( I_NEGO_NO VARCHAR2)
RETURN VARCHAR2 IS
OUR_LIST VARCHAR2(1000) := ' ';--temp var for result list
I BINARY_INTEGER := 0; --counter
BEGIN
FOR CODE IN (SELECT B.EMP_NO AS EMP_NO,EMP_NAME(B.EMP_NO) AS EMP_NAME
FROM RTS_NEGO_OUR_INFO_TB B
WHERE B.NEGO_NO=I_NEGO_NO
)
LOOP
IF I >= 1 THEN OUR_LIST := OUR_LIST||','||CODE.EMP_NAME;
ELSE OUR_LIST := CODE.EMP_NAME;
END IF;
I := I+1;
END LOOP;
RETURN OUR_LIST;
EXCEPTION
WHEN OTHERS THEN
RETURN '에러발생';
END;
( I_NEGO_NO VARCHAR2)
RETURN VARCHAR2 IS
OUR_LIST VARCHAR2(1000) := ' ';--temp var for result list
I BINARY_INTEGER := 0; --counter
BEGIN
FOR CODE IN (SELECT B.EMP_NO AS EMP_NO,EMP_NAME(B.EMP_NO) AS EMP_NAME
FROM RTS_NEGO_OUR_INFO_TB B
WHERE B.NEGO_NO=I_NEGO_NO
)
LOOP
IF I >= 1 THEN OUR_LIST := OUR_LIST||','||CODE.EMP_NAME;
ELSE OUR_LIST := CODE.EMP_NAME;
END IF;
I := I+1;
END LOOP;
RETURN OUR_LIST;
EXCEPTION
WHEN OTHERS THEN
RETURN '에러발생';
END;
a stupid method
if I want to select columns from table A on some condition else select columns from table B
SELECT
PR.PJT_NO
,CASE WHEN NGREQ.ALL_STS <='001'
THEN NGREQ.NEGO_FLAG
ELSE NGPLAN.NEGO_FLAG
END NEGO_FALG
,CASE WHEN NGREQ.ALL_STS <='001'
THEN NGREQ.NEGO_TYPE
ELSE NGPLAN.NEGO_TYPE
END NEGO_TYPE
,CASE WHEN NGREQ.ALL_STS <='001'
THEN NGREQ.NEGO_START_DATE
ELSE NGPLAN.NEGO_START_DATE
END NEGO_START_DATE
,CASE WHEN NGREQ.ALL_STS <='001'
THEN NGREQ.NEGO_END_DATE
ELSE NGPLAN.NEGO_END_DATE
END NEGO_END_DATE
,CASE WHEN NGREQ.ALL_STS <='001'
THEN NGREQ.TECH_START_DATE
ELSE NGPLAN.TECH_START_DATE
END TECH_START_DATE
,CASE WHEN NGREQ.ALL_STS <='001'
THEN NGREQ.TECH_END_DATE
ELSE NGPLAN.TECH_END_DATE
END TECH_END_DATE
,CASE WHEN NGREQ.ALL_STS <='001'
THEN NGREQ.PRICE_START_DATE
ELSE NGPLAN.PRICE_START_DATE
END PRICE_START_DATE
,CASE WHEN NGREQ.ALL_STS <='001'
THEN NGREQ.PRICE_END_DATE
ELSE NGPLAN.PRICE_END_DATE
END PRICE_END_DATE
FROM PR_PROJECT_MB PR,
RTS_NEGO_REQ_MB NGREQ,
RTS_NEGO_PLAN_MB NGPLAN
WHERE NGREQ.NEGO_NO LIKE PR.PJT_NO||'%'
AND NGREQ.NEGO_NO = NGPLAN.NEGO_NO(+)
AND PR.PJT_NO LIKE UPPER('%20090001%')