--1.사원의 이름이 5자 이상인 사원의 정보 SELECT * FROM EMP where length(ENAME)>=5; --2.사원명, 사원명의 첫 2자를 찍고 * 두개 찍기(별칭:mask_name) substra(속성,몇번째,몇글자 ), rpad(속성,전체글자수, 채울문자) SELECT SUBSTR(ENAME,1,2)||'*'FROM EMP; SELECT CONCAT(SUBSTR(ENAME,1,2),'**') FROM EMP; SELECT RPAD(SUBSTR(ENAME,1,2),4,'*') AS MASK_ENAME FROM EMP; SELECT SUBSTR(ENAME,1,1) FROM EMP; SELECT RPAD(SUBSTR(ENAME,1,1),LENGTH(ENAME),'*') FROM EMP; --3.사원명, 상원명의 첫글자+나머지는 *로 채우기 select from emp where ename as MASKING_ENAME SELECT RPAD(SUBSTR(ENMAE,1,1),LENGTH(ENAME),'*')FROM EMP; --4.사원명, 사원명의 첫글자+나머지는 * 로 채우기 별칭 MASKING_ENAME 단 사원의 이름이 5글자인 사원대상 SELECT RPAD(SUBSTR(ENAME,1,1),LENGTH(ENMAE),'*') FROM EMP WHERE LENGTH(ENAME)>=5; --5.사원번호, 사원명, 급여, 일당(한달 21.5일 근무,소수이하 버림(TRUNC)->별칭DAY_PAY 시급(단, 하루에 8시간 근무)--> TIME_PAY SELECT EMPNO,ENAME,SAL,TRUNC(SAL/21.5)AS DAY_PAY, SAL,ROUND(SAL/21.5/8,1) AS TIME_PAY FROM EMP; --6. 사원번호, 이름, 입사일,입사한지 3개월되는 날짜 SELECT EMPNO,ENAME,HIREDATE, ADD_MONTHS(HIREDATE,3) FROM EMP; --7. 사원번호,입사한지 3개월이 지난 월요일을 구ㅏ되 2022-04-04 형식으로 출력하고 별칭 R_JOB SELECT EMPNO,ENAME,HIREDATE, TO_CHAR(NEXT_DAY(ADD_MONTHS(HIREDATE,3),'월'),'YYYY-MM-DD')AS R_JOB FROM EMP; --8.사원번호, 급여, 보너스,보너스가 NULL이면 0 ,보너스가 NULL이면 'N.A'로 출력 SELECT EMPNO, SAL, COMM, NVL(COMM,0) AS COMM1, NVL(TO_CHAR(COMM), 'M/A') AS COMM2 FROM EMP; --9.사원번호, 이름,관리자번호,관리자번호가 NULL이면 '0000', 첫 2글자 '78'이면 '8888', 첫 2글자 '77'이면 '7777', 첫 2글자 '76'이면 '6666', 첫 2글자 '75'이면 '5555', 그 외: 관리자번호 그대로 CASE WHEN A THEN 값1 WHEN B THEN 값2 WHEN C THEN 값3 ELSE 값4 END AS __ ; SELECT EMPNO,ENAME,MGR, CASE WHEN MGR IS NULL THEN '0000' WHEN SUBSTR(MGR,1,2)=78 THEN '8888' WHEN SUBSTR(MGR,1,2)=77 THEN '7777' WHEN SUBSTR(MGR,1,2)=76 THEN '6666' WHEN SUBSTR(MGR,1,2)=75 THEN '5555' ELSE TO_CHAR(MGR) END AS CHG_MGR FROM EMP; |
'Coding > 데이터베이스' 카테고리의 다른 글
[오라클] 그룹화 관련된 여러 함수 group / cube / grouping sets/ grouping : rollup,cube/ grouping_id: rollup,cube 예제 (0) | 2022.04.11 |
---|---|
[오라클] 다중행 함수와 데이터 그룹화 예제 (0) | 2022.04.04 |
[오라클] DECODE 예제 (0) | 2022.03.28 |
[데이터베이스]오라클 6장 복습 예제 (0) | 2022.03.21 |
[데이터베이스 ] 6장 예제 (0) | 2022.03.21 |