SYS계정에서 제공하는 테이블. 함수나 계산식을 테이블 참조없이 실행해보기 위해 FROM절에 사용하는 더미 테이블
SELECT 20*30 FROM DUAL;
SELECT -10,ABS(-10) FROM dual;
반올림할 위치를 지정가능
자릿수를 지정하지 않으면 소수점 첫째 자리에서 반올림
음수로 자릿수를 지정할 경우 일->십->백 순의 자릿수에서 반올림
SELECT 12.345, ROUND(12.345), ROUND(12.345,2), ROUND(12.345,-1)
FROM dual;
버림을 할 자릿수 지정
자릿수를 지정하지 않으면 소수점 첫째 자리에서 버림(기본값이 0)
음수일 경우 일->십->백 순의 자릿수에서 버림
SELECT 12.345, TRUNC(12.345), TRUNC(12.345,2), TRUNC(12.456,-1), TRUNC(12.456,0)
FROM dual;
SELECT MOD(21,5) FROM dual;
CEIL(실수) : 실수 기준으로 가장 근접한 큰 값의 정수 반환
SELECT CEIL(12.345) FROM dual;
FLOOR(실수) : 실수 기준으로 가장 근접한 작은 정수의 값 반환
SELECT FLOOR(12.345) FROM dual;
POWER(정수A, 정수B) : 정수A를 정수B만큼 제곱하는 함수
SELECT POWER(2,3) FROM dual;
SELECT UPPER('apple') FROM dual;
SELECT LOWER('APPLE') FROM dual;
띄어쓰기 후 첫글자만 대문자!
SELECT INITCAP('RED APPLE') FROM dual;
SELECT LENGTH('apple77'),LENGTHB('apple77') FROM dual;
SELECT LENGTH('오라클'),LENGTHB('오라클') FROM dual;
INSTR(대상문자열(컬럼||문자열), 찾을 문자[,POSITION(시작위치)][,OCCURENCE(횟수)]
SELECT INSTR('HELLO ORACLE!', 'O'),
INSTR('HELLO ORACLE!', 'O', 6, 1),
INSTR('HELLO HELLO!', 'H', -7)
FROM dual;
SELECT INSTRB('HELLO 오라클!', '라') FROM dual;
SUBSTR(대상문자||컬럼,시작위치[,길이])
SELECT SUBSTR('abc@naver.com',5,5) FROM dual;
SELECT SUBSTR('abc@naver.com',INSTR('abc@naver.com','@')+1) FROM dual;
중복 값 없이 이메일출력하기
SELECT DISTINCT SUBSTR(student_email,INSTR(student_email,'@')+1) AS "email"
FROM student
ORDER BY email;
문자열의 특정길이만큼 확보하고, 길이가 다 채워지지 않는 공간(공백)에 왼쪽이나/오른쪽에 지정한 문자를 넣는 함수
LPAD(문자||컬럼,길이[,지정문자])
SELECT LPAD('hello 오라클',20), RPAD('hello 오라클',20,'!') FROM dual;
양 끝에 특정문자를 제거하는 함수 문자를 지정하지 않으면 공백제거
LTRIM(문자열 [,지정문자])
SELECT LTRIM(' 오 라클 123') FROM dual;
SELECT LTRIM('124 5 오라클 5 982','0123456789') FROM DUAL;
--지정문자를 그룹으로 보는게 아니라 하나씩 보면서 지우기
SELECT RTRIM('124 5 오라클 5 982','0123456789') FROM DUAL;
TRIM([LEADING||TRAILING||BOTH] [문자한개][FROM] 대상문자열)
-
SELECT TRIM(LEADING 'X' FROM 'XXXXXORACLEXXXX') FROM dual;
SELECT TRIM(TRAILING 'X' FROM 'XXXXXORACLEXXXX') FROM dual;
SELECT TRIM(BOTH 'X' FROM 'XXXXXORACLEXXXX') FROM dual;
SELECT TRIM(BOTH 'XX' FROM 'XXXXXORACLEXXXX') FROM dual;