본문 바로가기
SQL

SQL 내장함수 예제

by Minius 2018. 3. 14.
반응형

-- 

desc sys.dual

-- 절대값

select abs(-78), abs(78) from dual;

-- 반올림(소수점)

select round(4.875,1) from dual;

-- 반올림(소수점이상)

select custid "고객번호", round(sum(saleprice)/count(*), -2) "평균 금액"

from orders

group by custid

order by custid;

--이름 교체

select bookid, replace(bookname, '야구', '농구') bookname, publisher, price

from book;

select bookid,bookname, publisher, price

from book;

--글자수, 바이트수

select bookname "제목", length(bookname) "글자수", lengthb(bookname) "바이트수"

from book

where publisher='굿스포츠';

-- *번째 글자, *개

select substr(name,1,1) "성", count(*) "인원"

from customer

group by substr(name,1,1);

-- date

select orderid "주문번호", orderdate "주문일", orderdate+10 "확정"

from orders;

--마당서점이 2014년 7월 7일에 주문받은 ~

select orderid "주문번호", to_char(orderdate, 'yyyy-mm-dd dy') "주문일",

custid "고객번호", bookid "도서번호"

from orders

where orderdate=to_DATE('20140707','yyyymmdd');

--DBMS 서버에 설정된 현재 날짜와 시간, 요일을 확인하시오.

SELECT SYSDATE, TO_CHAR(SYSDATE, 'YYYY/MM/DD DY HH24:MI:SS') "SYSDATE_1"

FROM DUAL;

--

SELECT ABS(-15) FROM DUAL; -- 15 (절대값)

SELECT CEIL(15.7) FROM DUAL; -- 16 (올림)

SELECT CEIL(15.2) FROM DUAL; -- 16 (올림)

SELECT COS(3.14159) FROM DUAL; -- -1 (코사인)

SELECT FLOOR(15.7) FROM DUAL; -- 15 (내림)

SELECT LOG(10,100) FROM DUAL; -- 2 (로그)

SELECT MOD(11,4) FROM DUAL; -- 3 (나머지)

SELECT POWER(3,2) FROM DUAL; -- 9 (제곱, 승)

SELECT SIGN(-15) FROM DUAL; -- -1 (1은 양수, -1은 음수, 0은 0)

SELECT TRUNC(15.7252,3) FROM DUAL; -- 15.725 (자릿수 자르기)

SELECT TRUNC(15.7252,0) FROM DUAL; -- 15 (자릿수 자르기)

SELECT TRUNC(15.7252,-1) FROM DUAL; -- 10 (자릿수 자르기)

SELECT CHR(67) FROM DUAL; -- C (아스키코드값 반환)

SELECT ASCII('C') FROM DUAL; -- 67 (아스키코드값 반환)

SELECT CONCAT('HAPPY','BIRTHDAY') FROM DUAL; -- 글자 합치기

SELECT LOWER('BIRTHDAY') FROM DUAL; -- birthday(소문자로 바꾸기)

SELECT UPPER('birthday') FROM DUAL; -- BIRTHDAY(대문자로 바꾸기)

SELECT LPAD('PAGE 1',15,'*') FROM DUAL; -- *********PAGE 1 (앞의 빈 공간 채우기)

SELECT LPAD('PAGE 1',15,'*.') FROM DUAL; -- *.*.*.*.*PAGE 1 (앞의 빈 공간 채우기)

SELECT RPAD('PAGE 1', 15,'*.') FROM DUAL; -- PAGE 1*.*.*.*.* (뒤의 빈 공간 채우기)

SELECT LTRIM('PAGE 1','P') FROM DUAL; -- AGE 1 (왼쪽부터 선택한 글자 없애기)

SELECT LTRIM('PAGE 1','PAG') FROM DUAL; -- E 1 

SELECT LTRIM('PAGE 1','AG') FROM DUAL; -- PAGE 1 (중간부터는 안됨)

SELECT RTRIM('PAGE 1','P') FROM DUAL; -- PAGE 1 (오른쪽부터 선택한 글자 없애기)

SELECT RTRIM('PAGE 1','1') FROM DUAL; -- PAGE 

SELECT RTRIM('PAGE 1','GE 1') FROM DUAL; -- PA

SELECT TRIM(LEADING 0 FROM '00AA00') FROM DUAL; -- AA00 (앞부터 없애기)

SELECT TRIM(TRAILING 0 FROM '00AA00') FROM DUAL; -- 00AA (뒤부터 없애기)

SELECT TRIM(BOTH 0 FROM '00AA00') FROM DUAL; -- AA (양쪽 없애기)

SELECT TRIM(0 FROM '00AA00') FROM DUAL; -- AA (양쪽 없애기)

SELECT REPLACE('JACK','J','BL') FROM DUAL; -- BLACK (J를 BL로 교체)

SELECT SUBSTR('ABCDEFG',3,4) FROM DUAL; -- CDEF (3번째부터 4글자 출력)

SELECT INSTR('CORPORATE FLOOR','OR',3,2) FROM DUAL; -- 14 (3번째부터 시작해서 OR가 2번째 나오는 위치)

SELECT LENGTH('BIRTHDAY') FROM DUAL; -- 8 (글자 길이)

SELECT LENGTHB('BIRTHDAY') FROM DUAL; -- 8 (바이트 길이)

SELECT (-15) FROM DUAL; --

SELECT ABS(-15) FROM DUAL; --

SELECT ABS(-15) FROM DUAL; --

'SQL' 카테고리의 다른 글

IN / NOT IN  (0) 2018.03.15
부속질의 Subquery  (0) 2018.03.15
TRANSACTION  (0) 2018.03.08
INDEX  (0) 2018.03.08
View  (0) 2018.03.08

댓글