2016년 1월 25일 월요일

[oracle]null 관련함수 및 기타 함수

null 관련 함수


nvl(a , '값')   :   a가 null 이면 값을 반환한다.

nvl2(a , '값1', '값2') : a가 null 이면 값1 아니면 값2 를 반환한다.

nullif ( a, b) : a 와 b 가 동일하면 null 을 반환하고 그렇지 않으면 a 값을 반환한다.

lanvl ( 조건 ) : 조건이 참이면 거짓 그렇지않으면 참을 반환한다.

coalesce( 컬럼1, 컬럼2 ,컬럼3,... ) :         컬럼1 이 null 아니면 컬럼1을 반환하고 끝
컬럼1이 null 일 경우 컬럼2 가 null 이 아니면 컬럼2 를 반환. 이런식 으로 마지막 컬럼 까지 진행된다 순차적으로 null 체크를 한다. 반환이 되는 컬럼이후의 컬럼은 null 체크를 하지 않는다.


기타 함수

decode() 함수 : null 이 아닌 값을 비교하여 반환하는 함수

예)
select name,decode(substr(id_number, 8, 1), '1', '남','2','여')
from student;

결과)
김대현
신지애
이정민
박주영
한영삼
서희경

설명)
student 테이블에서 id_number 즉 주민등록번호 정보를 추출 하여 1 일경우 남을 출력 2일경우 여를 출력함


case() 함수 : 값의 조건만족 여부에 따라 특정 값을 출력한다.

문법)

case 값 when 비교값이나 범위 then 반환값
           when 비교값이나 범위 then 반환값'
           when 비교값이나 범위 then 반환값
           else 기본값
end

위 문법이 select 절에 컬럼부분에 기술된다.

예)

select (select name from student where student_id = t1.student_id ) "이름",
         case  when score between 90  and 100 then 'A'
              when score between 80  and 89 then 'B'
              when score between 70  and 79 then 'C'
              when score between 60  and 69 then 'D'
              when score between 0   and 59 then 'F'
         
        end "학점" , course_id "과목코드"
from SG_Scores t1;

결과)

이정민 A L1011
박주영 B L1011
이정민 B L1012
박주영 A L1012
한영삼 A L1031
서희경 A L1031
한영삼 C L1032
서희경 A L1032
이정민 A L1021
박주영 B L1021
이정민 A L1022
박주영 B L1022
한영삼 B L1041
서희경 A L1041
한영삼 B L1042
서희경 A L1042
이정민 B L1031
박주영 C L1031
이정민 A L1032
박주영 A L1032
한영삼 B L1051
서희경 C L1051
한영삼 B L1052
서희경 B L1052
이정민 A L1041
박주영 B L1041
이정민 (null) L1042     % 105점 이라서 범위에 없을 경우 null 값이 들어간다.
박주영 A L1042
한영삼 D L0011
서희경 A L0011



댓글 없음:

댓글 쓰기

[lunux]리눅스 폴더별 용량 확인

리눅스 폴더별 용량 확인 조회 하고자 하는 디렉토리 리스트가있는 경로로 이동후 du -h --max-depth=1