05/22_Oracle_SELECT

정희운·2023년 5월 22일
0
distinct 중복제거

자주 쓰는 오라클 함수

문자형 함수 : LOWER , SUBSTR , TRIM , REPLACE
숫자형 함수 : MOD , ROUND
날짜형 함수 : SYSDATE

LOWER = 대문자를 --> 소문자로

-- from dual(테이블) 테스트 할 때 쓰는 가상 테이블

SUBSTR = 입력받은 문자형 리터럴에서 시작위치에서 길이만큼 잘라낸다.

SUBSTR(자를 컬럼, 시작위치, 길이)

'...' 이 있으면 장문은 ...붙여서 출력

TRIM = 양쪽에 있는 공백을 없애줌 (' ' 안의 문자 사이의 공백은 제거 안됨)

EX) 비밀번호 같은경우 첫글자 공백으로 넣으면 공백도 비밀번호에 포함되기에

REPLACE = 입력받은 문자형 리터럴 안에있는 A를 B로 바꿈

REPLACE(컬럼, 기존문자(''), 대체할 문자(''))

숫자형 함수 : MOD, ROUND

MOD = MOD(피제수, 제수) 피제수를 제수로 나눈 나머지 숫자형 리터럴을 출력

MOD(피제수, 제수)

ROUND 자릿수까지 반올림한 결과

ROUND( 실수, 소수점자릿수 )

SYSDATE = 현재 시간

SELECT SYSDATE

-도구 환경설정 NLS 날짜 형식
YYYY-MM-DD HH24:MI:SS

형변환 함수

문자인 데이터 --> 날짜
날짜인 데이터 --> 문자

YYYY = 연도
MM = 월
DD = 일
HH24 = 24시간
HH = 12시간
MI = 분
SS = 초

형변환 우선순위

문자형은 자동 숫자형 변환 시도후 불가능 하면 에러 가능하면 실행!

NULL

NULL 함수

NVL ( data1, data2 )

data1 컬럼 안의 null 인스턴스 data2의 값으로 대체

NVL2 ( data1, data2, data3 )

DECODE (data1, data2, data3, data4)

data1 과 data2 가 동일하면 data3을 출력하고, 그렇지 않으면 data4 출력

select coalece ( null, null, 2)

SELECT MEMBER_ID
     , GENDER
     , DECODE( GENDER , '남' , 'MAN' , '여', 'WOMAN' , 'ELSE') AS 성별
FROM TB_MEMBER;

DECODE ( 젠더 컬럼에 남이라면 MAN 여라면 WOMAN (조건더 추가 가능)그외에 ELSE)

0개의 댓글