본문 바로가기
데이터베이스

21일차//[Oracle] / SELECT☑️ /내장 함수

by aesup 2021. 2. 8.
728x90

--standard Function

-- DUAL TABLE : 가상테이블 - > 결과확인용 테이블

SELECT 1 FROM DUAL;  
SELECT 'A' FROM DUAL;  
SELECT 23\*45 FROM DUAL;

--문자함수

--CHR(N): ASCII 값을 문자로 변환

SELECT CHR(65) FROM DUAL;

--String str = "안녕하세요" + "건강하세요"

SELECT '내 점수는' ||CHR(65)||'입니다'FROM DUAL;

--LPAD(RPAD) : 나머지를 빈칸으로 채운다

SELECT LPAD('BBB',10) FROM DUAL;

SELECT RPAD('BBB',10) FROM DUAL;

SELECT LPAD('BBB',10,'-') FROM DUAL;

SELECT LPAD('123',10,'0') FROM DUAL;

-- INSTR == indexOf('a')인덱스 번호가 나왔었다.

--DB 에선 1 부터

SELECT INSTR('123ABC456DEF','A') FROM DUAL;  
SELECT INSTR('123ABC456DEFABC','A', 7) FROM DUAL;

--7번찌 이후에 나오는A를 찾아라

SELECT INSTR('123ABC456DEFABCABC','A', 7, 1) FROM DUAL;  
SELECT INSTR('123ABC456DEFABCABC','A', 7, 2) FROM DUAL;  
SELECT INSTR('123ABC456DEFABCABC','y') FROM DUAL;

-- REPLACE : 문자열 치환

SELECT REPLACE('AAAAABCD','A')FROM DUAL;  
SELECT REPLACE('AAAAABCD','A','a')FROM DUAL; --바꾸고싶은 문자  
SELECT REPLACE('AAAAABCD','AAA','a')FROM DUAL;

--TRANSLATE : 문자 치환

SELECT TRANSLATE('AAAAABCD','A','a')FROM DUAL;  
SELECT TRANSLATE('AAAAABCD','AA','a')FROM DUAL;--얘는 한글자만 인식

--SUBSTR

SELECT SUBSTR('ABCDE',3) FROM DUAL; -- 3부터끝까지 짤라라 CDE  
SELECT SUBSTR('ABCDE',3, 2) FROM DUAL;--3부터 두문자 CD

--숫자

 

--올림

SELECT CEIL(13.1)FROM DUAL;

--내림

SELECT FLOOR(13.9) FROM DUAL;

-- 나눈 나머지

SELECT MOD(3,2) FROM DUAL;

--승수 제곱

SELECT POWER(3,2) FROM DUAL;

--반올림업

SELECT ROUND(13.5)FROM DUAL;

--부호 + = 1 0 = 0 - = -1

SELECT SIGN(13.4) FROM DUAL;  
SELECT SIGN(0)FROM DUAL;  
SELECT SIGN(-1)FROM Dual;

--버림 : 소수를 버린다.

SELECT TRUNC(123.456) FROM DUAL;  
SELECT TRUNC(123.456,-1) FROM DUAL; -- 1자리까지 날려라  
SELECT TRUNC(123.456,2) FROM DUAL;

--문자를 넣으면 ASCII

SELECT ASCII('A') FROM DUAL;

--변환함수

--TO_CHAR
--DATE -> VARCHAR2

SELECT SYSDATE FROM DUAL;  
SELECT TO\_CHAR(SYSDATE) FROM DUAL; -- 문자열 타입

SELECT TO\_CHAR(SYSDATE,'YYYY-MM-DD-HH-MI-SS') FROM DUAL;  
SELECT TO\_CHAR(SYSDATE,'YYYY/MM/DD HH:MI:SS') FROM DUAL;

SELECT TO_CHAR(10000000,'$999,999,999')FROM DUAL;

--TO_DATE

--VARCHAR2 - > DATE

SELECT TO_DATE('20210208') FROM DUAL;

SELECT TO_DATE('20210208','YYYYMMDD') FROM DUAL;

--TO)NUMBER VARCHAR2 - > NUMBER parseInt

SELECT TO_NUMBER('123') + 45 FROM DUAL;

--LAST_DAY

SELECT LAST_DAY('21/02/08') FROM DUAL;  
SELECT LAST_DAY('21-12-01') FROM DUAL;  
SELECT LAST_DAY(TO_DATE('21-12-01','YYMMDD')) FROM DUAL;
728x90