SELECT A.YEAR , A.HAKGI , A.HAKBEON , COMMON.SF_CS_BUSEO_CODE(B.HAKGWA_CD) as HAKGWA_NM , COMMON.SF_CS_BUSEO_CODE(B.JEONGONG_CD) as JEONGONG_NM , A.SINCHEONG_ILJA , B.NAME , B.JUMIN_NO2 , MOD(SUBSTR(B.JUMIN_NO2,1,1),2) AS SEX , DECODE(MOD(SUBSTR(B.JUMIN_NO2,1,1),2),'1','남','0','여') AS SEX_NM , B.HAKNYEON , B.JUMIN_NO1 || CRYPTO.DEC('PATTERN1',JUMIN_NO2) AS JUMIN_NO , SUBSTR(B.HP_NO,1,3) || '-' || SUBSTR(B.HP_NO,4,4) || '-' || SUBSTR(B.HP_NO,8,4) || '' AS HP_NO , CASE WHEN TELNO IS NULL THEN '' ELSE SUBSTR(B.TELNO,1,3) || '-' || SUBSTR(B.TELNO,4,3) || '-' || SUBSTR(B.TELNO,7,4) || '' END AS TELNO , B.EMAIL , B.HYEON_POST_NO , B.HYEON_JUSO1 , B.DAEHAK_CD , DECODE(MOD(SUBSTR(B.JUYA_GBCD,1,1),2),'1','야간','0','주간') AS JUYA_GBCD , B.GWAJEONG , B.HAKJEOK_ST , B.HAKGWA_CD , B.JEONGONG_CD , B.BOHOJA_TELNO , CASE WHEN BOHOJA_HP_NO IS NULL THEN '' ELSE SUBSTR(B.BOHOJA_HP_NO,1,3) || '-' || SUBSTR(B.BOHOJA_HP_NO,4,4) || '-' || SUBSTR(B.BOHOJA_HP_NO,8,5) || '' END AS BOHOJA_HP_NO , A.SEONGIN_YN , A.CHAEKJEONG_AEK , A.NAPBU_CD , A.NAPBU_ILJA , A.NAPBU_BANK_CD , A.TOEGEO_YN , A.NAPBU_AEK , A.NAPBU_WAY , A.BIGO , A.HOSIL , A.GEONMUL_GBCD FROM BK_SINCHEONG_M A INNER JOIN HAKSA.HS_HAKJEOK_V B ON A.HAKBEON = B.HAKBEON WHERE 1 = 1 AND YEAR = #YEAR# AND HAKGI = #HAKGI# AND B.DAEHAK_CD LIKE #DAEHAK_CD# AND NVL(B.HAKGWA_CD,' ') LIKE #HAKGWA_CD# AND NVL(B.JEONGONG_CD,' ') LIKE #JEONGONG_CD# AND TO_CHAR(B.HAKNYEON) LIKE #HAKNYEON# AND (A.HAKBEON LIKE #HAKBEON# || '%' OR B.NAME LIKE #HAKBEON# || '%') ORDER BY YEAR , HAKGWA_CD , HAKNYEON
여기서 수정해야됄 쿼리나 조금더 쿼리튜닝을 하고싶은데 선임분들 조언듣고싶습니다!
실제 데이터 들도 개인적으로 궁금하네여.. 샘플로 볼수 있을까여...
AND NVL(B.HAKGWA_CD,
' '
) LIKE #HAKGWA_CD#
AND NVL(B.JEONGONG_CD,
' '
) LIKE #JEONGONG_CD#
AND TO_CHAR(B.HAKNYEON) LIKE #HAKNYEON#
왜 이렇게 LIKE..가 많을까여.. _CD 는 코드성 테이블 이라는 건데.. 흐음..
그리고.. 학년도... 숫자만 있는거 아니에여? 혹시??
'%'
OR B.NAME LIKE #HAKBEON# ||
'%'
)
개인적인 의견으로.. 학번은 정해진 숫자 일거 .. 같은데.. 만약 홈페이지나 어디서
입력 받은걸로 구현한다면.. 학번 12345678 인데 123 으로 오타치면.. 엄청나게 많은 데이터가.. 나올거 같은데... 원하시는게 맞나요..?