[Oracle], 분기함수 이용하기

     

     

    ORACLE, 분기함수 사용

     

     

     

      분기함수

    SELECT 컬럼1 FROM TABLE명

     위의 TABLE안에 컬럼1의 값이 무엇이 들어있는지는 알 수 없다.

    그러나 컬럼1에 대한 결괏값을 갖고 카운트 함수를 사용하게 되었을 때, 분기함수는 매우 도움이 될 수 있다.

     

     

      DECODE -1

    DECODE(컬럼값, 'Y', 1, 0);

    DECODE 함수는 다음과 같다.

     

    DECODE(대상1, 대상2, TRUE, FALSE)

    대상1과 대상2가 같을 경우 세 번째 함수가 표시, 다를 경우 네 번째 함수가 표시된다.

    위와 같은 경우 컬럼값이 'Y'일 경우 1, 아닐 경우 0을 표시한다.

     

     

      DECODE -2

    DECODE(비교1, 비교2, '첫번째TRUE', 비교3, '두번째TRUE', '첫번째FALSE');

     두 번째 DECODE의 사용방법이다.

    비교1과 비교2가 동일하다면, 첫 번째 TRUE가 표시되고비교1과 비교3이 동일하다면, 두 번째 TRUE가 표시된다.비교1이 비교2, 비교3이 모두 동일하지 않을 경우, 첫 번째 FALSE이 실행된다.

     

    함수에 사용되는 타입이 많은만큼 헷갈릴 수 있으므로, 조심해야 한다.비교2와 비교3은 TRUE, FALSE여부 상관없이 결괏값을 따로 표시할 수는 없다.

     

     

      DECODE 사용하기

    SELECT COUNT(컬럼1) AS TOTAL
    , SUM(DECODE(컬럼2 ,'Y',1,0)) AS YES
    , SUM(DECODE(컬럼3 , 'N', 1,0)) AS NO
    FROM TABLE w ;

     DECODE의 사용방법.

    TERMNL_INSTL_YN의 값에 따라서 갯수를 체크하는 방법으로 활용된다.

    일반 언어의 IF - ELSE의 개념과 유사하다고 생각하면 된다.

    반응형

    'Computer > DB' 카테고리의 다른 글

    [MariaDB] Window에서 MariaDB 비밀번호 찾기  (2) 2023.07.29
    [Oracle] 사용한 컬럼 찾기  (0) 2023.07.04
    [Oracle] NULL 처리 방법  (0) 2023.02.05
    [MariaDB] DataBase Character 설정하기  (0) 2022.12.04
    [MariaDB] DB 복구하기  (0) 2022.05.19

    댓글

    Designed by JB FACTORY