본문 바로가기

SW 개발 공부/기초 SW 개념

쿼리 분석 2

"SELECT A.DEV_ID, A.CHL_NUM, A.SETTING_ID, A.ALT_ID, TO_CHAR(A.OCCUR_TM, 'yyyy.mm.dd hh24:mi:ss') AS OCCUR_TM, A.MAX_ENG, " +
                "A.OCCUR_DIST, B.TYPE_NM || '(' || B.TYPE_ID || ')' AS TYPE_NM, A.ML_YN , C.TYPE_NM AS SRC_TYPE_NM" +
                " FROM ALARM_ALT A, ALARM_ALT_TYPE B, ALARM_ALT_TYPE C WHERE 1=1 AND A.TYPE_ID = B.TYPE_ID(+) AND A.SRC_TYPE_ID = C.TYPE_ID(+)" +
                " AND NVL((:DEV_ID), A.DEV_ID) = A.DEV_ID " +
                " AND NVL((:CHL_NUM), A.CHL_NUM) = A.CHL_NUM " +
                " AND NVL((:SETTING_ID), A.SETTING_ID) = A.SETTING_ID " +
                " AND NVL((:ALT_ID), A.ALT_ID) = A.ALT_ID " +
                " AND OCCUR_TM >= TO_DATE(NVL(:OCCUR_TMS, TO_CHAR(A.OCCUR_TM, 'yyyy.mm.dd hh24:mi:ss')), 'yyyy.mm.dd hh24:mi:ss') " +
                " AND OCCUR_TM <= TO_DATE(NVL(:OCCUR_TME, TO_CHAR(A.OCCUR_TM, 'yyyy.mm.dd hh24:mi:ss')), 'yyyy.mm.dd hh24:mi:ss') " +
                " AND MAX_ENG >= NVL(:MAX_ENGS, A.MAX_ENG) " +
                " AND MAX_ENG <= NVL(:MAX_ENGE, A.MAX_ENG) " +
                " AND OCCUR_DIST >= NVL(:OCCUR_DISTS, A.OCCUR_DIST) " +
                " AND OCCUR_DIST <= NVL(:OCCUR_DISTE, A.OCCUR_DIST) " +
                " AND NVL(NVL((:TYPE_ID), A.TYPE_ID), 999999) =  NVL(A.TYPE_ID, 999999) " +
                " AND NVL((:ML_YN), A.ML_YN) = A.ML_YN " +
                " ORDER BY A.OCCUR_TM DESC";

SELECT

(A.DEV_ID, A.CHL_NUM, A.SETTING_ID, A.ALT_ID,

 TO_CHAR(A.OCCUR_TM, 'yyyy.mm.dd hh24:mi:ss') AS OCCUR_TM, 

A.MAX_ENG,A.OCCUR_DIST

 

B.TYPE_NM || '(' || B.TYPE_ID || ')' AS TYPE_NM

, A.ML_YN , C.TYPE_NM AS SRC_TYPE_NM )

 

FROM

( ALARM_ALT A, ALARM_ALT_TYPE B, ALARM_ALT_TYPE C )

 

WHERE

( 1=1 AND A.TYPE_ID = B.TYPE_ID(+) AND A.SRC_TYPE_ID = C.TYPE_ID(+)

AND NVL((:DEV_ID), A.DEV_ID) = A.DEV_ID

AND NVL((:CHL_NUM), A.CHL_NUM) = A.CHL_NUM

AND NVL((:SETTING_ID), A.SETTING_ID) = A.SETTING_ID

......

AND OCCUR_TM >= TO_DATE(NVL(:OCCUR_TMS, TO_CHAR(A.OCCUR_TM, 'yyyy.mm.dd hh24:mi:ss')), 'yyyy.mm.dd hh24:mi:ss') "

AND NVL(NVL((:TYPE_ID), A.TYPE_ID), 999999) =  NVL(A.TYPE_ID, 999999)

)

 

ORDER BY A.

(OCCUR_TM DESC)

 

 

더보기

TO_CHAR() 메서드

 - 날짜, 숫자등의 값을 문자열로 반환하는 메서드

 

사용 예)  TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') --2020-07-23 11:10:52

더보기

NVL(A,B) 메서드

 - 첫번째 인수가 NULL이 아니면 그 값을 반환하고, NULL이면 두번째 인수를 반환한다.

더보기

AS 문법

- 데이터 조회시 컬럼명에 별칭을 주어, 출력되는 컬럼명을 변경하고자할때 사용됨.

 

사용 예) TO_CHAR(A.OCCUR_TM, 'yyyy.mm.dd hh24:mi:ss') AS OCCUR_TM --OCCUR_TM으로 표시됨.

더보기

 || 문법

- 문자열 연결 연산자

 

사용 예) B.TYPE_NM || '(' || B.TYPE_ID || ')' AS TYPE_NM -> B.TYPE_NM (B.TYPE_ID) AS TYPE_NM

더보기

 : 문법

- 파라미터 바인딩 변수 표시