HRD_훈련/실습

[SQL] SQL 함수 실습 (19일차)

리드미. 2023. 6. 12. 22:53
728x90
반응형

테이블

STUDENT

 

EMP

 

 

문제1. STU_NO을 보기와 같이 출력하시오.

 

▶ 코드

SELECT RPAD(SUBSTR(STU_NO, 1, 4), 10, '*') AS TEST
FROM STUDENT;
  • SUBSTR 함수를 이용하여 학번의 맨 앞 4자리를 구해오고, 나머지를 '*'으로 채워넣는다.

 

 

 

 

문제2. 주민번호를 아래와 같이 출력하시오.

▶ EX) 800000-1234567 =>800000-1*******

 

 코드

SELECT RPAD(SUBSTR('800000-1234567', 1, 8), 14,'*') AS TEST
FROM STUDENT;

 

 

 

문제3. 보기와 같이 출력하는 코드를 작성하시오.

 

▶ 코드

SELECT STU_NAME || ' 의 학과는  ' || STU_DEPT || '입니다.'
FROM STUDENT;

 

 

 

문제4. 보기와 같이 출력하는 코드를 작성하시오.

 

▶ 코드

SELECT STU_NAME || ' 학생은 ' || SUBSTR(STU_NO, 3, 2) || '학번 입니다.' AS TEST
FROM STUDENT;
  • SUBSTR을 이용하여 '~~@@~' 학번 @@를 받아왔다.

 

 



문제5. 가상 테이블 TEMP을 참고하여 주민번호에 따라 남자/여자를 출력하시오.

▶ 실습을 위해 만든 가상 테이블 TEMP

--실습을 위해 만든 가상 테이블 TEMP
WITH TEMP AS (
    SELECT '800000-1234567' AS JUMIN, '홍길동' AS NAME FROM DUAL UNION ALL
    SELECT '900000-2234567' AS JUMIN, '홍길순' AS NAME FROM DUAL UNION ALL
    SELECT '700000-1234567' AS JUMIN, '유재석' AS NAME FROM DUAL UNION ALL
    SELECT '800100-3234567' AS JUMIN, '강호동' AS NAME FROM DUAL UNION ALL
    SELECT '800200-4234567' AS JUMIN, '박미선' AS NAME FROM DUAL 
)

 

 

 주민번호가 1,3은 남자/2,4는 여자 출력

SELECT NAME, RPAD(SUBSTR('800000-1234567', 1, 8), 14,'*') AS JUMIN,
    DECODE(SUBSTR(JUMIN,8,1),
            1, '남자',
            3, '남자',
            2, '여자',
            4, '여자'
            '이상한 사람'
    )AS GENDER
FROM TEMP;

 

 

 

 

문제6. <STUDENT> 테이블에서 15학번인 사람을 출력하시오.

▶ SUBSTR() 을 이용해서 학번이 '2015'인 학생을 찾는다. 

SELECT SUBSTR(STU_NO, 3,2) AS 학번, STU_NAME
FROM STUDENT
WHERE SUBSTR(STU_NO, 1,4) = '2015';

 

▶ LIKE 를 이용해서 학번이 '2015'인 학생을 찾는다. 

SELECT SUBSTR(STU_NO, 3,2) AS 학번, STU_NAME
FROM STUDENT
WHERE STU_NO LIKE '2015%';

 

▶ 출력 결과

 

 

 

문제7. 키가 170이상이면서 180 미만인 사람 출력

▶ LIKE를 이용해서 170대인 사람을 찾는다.

SELECT *
FROM STUDENT
WHERE STU_HEIGHT LIKE '17_';

 

▶ 출력 결과

 

728x90
반응형