(오라클) DECODE, CASE-SQL문에서의 IF절

2021. 12. 24. 19:33오라클(Oracle) 데이터 베이스

 

 

 

 

 

 

조건문
"-하는 걸 보고싶다면"

 

 

 

 

 

 

 


 

 

 

DECODE 

함수의 기준이 되는 데이터를 지정한 후, 해당 데이터 값에 따른 결과 값을 내보내는 함수

 

SELECT	검색할 열들
		DECODE (조건 대상이 될 열
        		조건 1, 데이터가 조건 1과 일치할 때 반환할 결과
                조건 2, 데이터가 조건 2과 일치할 때 반환할 결과
                조건 3, 데이터가 조건 3과 일치할 때 반환할 결과
                조건 n, 데이터가 조건 n과 일치할 때 반환할 결과)AS 별칭
                
FROM	출처 테이블

 

 

 

 

 

 

CASE


함수의 기준이 되는 데이터를 지정한 후, 해당 데이터 값에 따른 결과 값을 내보내는 함수

각 조건에 사용하는 데이터가 서로 달라도 OK! 

 

SELECT	검색할 열들
		CASE (조건 대상이 될 열
        	WHEN 조건 1 THEN 데이터가 조건 1과 일치할 때 반환할 결과
            WHEN 조건 2 THEN 데이터가 조건 2과 일치할 때 반환할 결과
            WHEN 조건 3 THEN 데이터가 조건 3과 일치할 때 반환할 결과
            WHEN 조건 n THEN 데이터가 조건 n과 일치할 때 반환할 결과
            END
                
FROM	출처 테이블

 

 

 

 


****아래 문제들은 학원에서 내 준 개별적인 테이블, 개별적인 문항들예욤****

복습차원일뿐

 

 

 

 

  • Student 테이블을 사용하여 학생들의 이름(name), 주민번호(jumin), 성별을 출력하세요.
    성별은 주민번호(jumin) 컬럼을 이용하여 7번째 숫자가 1일경우 "남자", 2일 경우 "여자"로 출력하세요.
SELECT 	NAME, JUMIN
		DECODE(SUBSTR(JUMIN,7,1),1, '남자', 2, '여자' AS 성별
FROM	STUDENT;

 

 

SELECT	NAME, JUMIN
		CASE SUBSTR(JUMIN,7,1)
        WHEN '1' THEN '남자'
        WHEN '2' THEN '여자''
        END AS 성별
FROM	STUDENT;

 

  • 테이블을 참조하여 학생의 이름(name)과 전화번호(tel), 지역명을 출력하세요. (단 지역번호가 02면 서울, 031이면 경기, 051이면 부산, 052이면 울산, 055이면 경남,   나머지는 기타로 표시하세요.)(case문 사용)
SELECT NAME, TEL
		CASE SUBSTR(TEL,1, INSTR(TEL, ')') -1)
        WHEN '02' THEN '서울'
        WHEN '031' THEN '경기'
        WHEN '051' THEN '부산'
        WHEN '052' THEN '울산'
        WHEN '055' THEN '경남'
        ELSE '기타'
        END AS 지역명 
FROM	STUDENT;