ORACLE SQL

ORACLE SQL 2회독 문제 풀이

최종군 2024. 7. 25. 21:55

 

 

INSTR : 

 

SELECT INSTR('AABAACAABBAA','B',1,2)
FROM DUAL;             

 

2 2번째 순번을 찾는다.

 

SUBSTR과INSTR을 활용해서

 

-- 사원 정보 중 사원명, 이메일, 아이디 조회 
-- [1] 이메일에서 '@'의 위치를 찾고 => INSTR 함수 사용 
-- [2] 이메일의 컬럼의 값에서 1번째 위치부터 '@'위치(1에서 확인)전까지 추출 
SELECT EMP_NAME, email, SUBSTR(email, '1',INSTR(EMAIL, '@') -1) 
FROM EMPLOYEE;

 

-- 연결 연산자 사용해서 ?

 

SELECT EMP_NAME,EMP_NO,RPAD(SUBSTR(EMP_NO, 1,8),14,'*') 
FROM EMPLOYEE;

 

 LPAD(문자열|컬럼|,최종길이[, 덧붙일 문자])
 RPAD(문자열|컬럼|,최종길이[, 덧붙일 문자])

 

 REPLACE : 

          [표현법]
                    REPLACE(문자열, 찾을 문자열, 변경할 문자열)

 

SELECT REPLACE(EMAIL, '@or.kr' ,'@gmail.com') 이메일
FROM employee;

 

 

-- MONTHS_BETWEEN 
-- 두 날짜 사이의 개월 수를 반환 


-- [표현법] MONTHS_BETWEEN(날짜A, 날짜B) : 날짜A  - 날짜V => 개월 수 계산 
SELECT EMP_NAME, HIRE_DATE, concat(CEIL(MONTHS_BETWEEN(SYSDATE, HIRE_DATE)), '개월차') "근속개월수" 
FROM employee
ORDER BY HIRE_DATE;

 

 

 

개월차 구하는  

SELECT CEIL(MONTHS_BETWEEN(SYSDATE, '24/06/11')) || '개월차' "공부 시작한지"
FROM DUAL;

 

몇 개월 남았는지 

SELECT CEIL(MONTHS_BETWEEN(SYSDATE, '24/06/11')) || '개월차' "공부 시작한지"
FROM DUAL;

 

 

-- [표현법] ADD_MONTHS(날짜, 더할 개월 수를 더해서 반환)
SELECT  SYSDATE 현재날짜, ADD_MONTHS(SYSDATE, 4) 다음달
FROM DUAL;

 

언어 설정 : 

ALTER SESSION SET NLS_LANGUAGE = KOREAN;

 

-- 사원 테이블에서 사원명, 입사일, 입사한 달의 마지막날짜, 입사한 달의 근무일수 조회
SELECT EMP_NAME 사원명, HIRE_DATE 입사일, LAST_DAY(HIRE_DATE) "입사한 달의 마지막날짜",  LAST_DAY(HIRE_DATE) - hire_date + 1 "근무 횟수"   
FROM employee;

 

EXTRACT : 특정 날짜로부터 년도/월/.일 값을 추출해서 반환해주는 함수 

 

 

-- 이름, 생년월일, 나이 정보 조회

SELECT NAME, BIRTHDATE,

EXTRACT(YEAR FROM SYSDATE) - EXTRACT(YEAR FROM BIRTHDATE) + 1 "나이"

FROM CUSTOMER;

 

 

 

 

 

'ORACLE SQL' 카테고리의 다른 글

ORACLE SQL DDL_01  (0) 2024.07.27
SQL 1회독  (0) 2024.07.26
SQL 집합 연산자 , JOIN  (0) 2024.07.24
SQL_함수 모음 NULL 처리 함수, 선택 함수  (0) 2024.07.23
SQL 함수_ 형변환  (0) 2024.07.22