HRD_훈련/실습
[SQL] SQL 함수 실습 (19일차)
리드미.
2023. 6. 12. 22:53
728x90
반응형
테이블
문제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
반응형