MSSQL*

SQL 함수

회사원Z 2009. 8. 19. 17:25

SQL 함수

SQL함수의 종류

단일행 함수 / 다중행 함수 : 처리하는 입력행의 수에 따라서 분류(반환값은 하나로 동일)

 

단일행 함수의 기능

  • 데이터 항목을 조작: 실제값의 조작이 아닌 보여지는 것만 처리, 저장값의 변화는 없음
  • 행당 하나의 결과 반환
  • 중첩가능
  • 데이터 유형 수정
  • 종류: 입력값에 따라 문자, 숫자, 날짜, 일반(값에 무관), 변환(데이터 유형을 바꿈)으로 나누어진다.

 

 

문자함수

 받아오는 값이 문자를 받아서 연산 처리하는 함수

종류

  • 대소문자 조작 함수 : LOWER, UPPER, INICAP
  • 문자조작 함수 : CONCAT, SUBSTR, LENGTH, INSTR, LPAD, RPAD, TRIM, REPLACE

 

 대소문자 조작함수
 UPPER()

 모든 문자를 대문자로 변환해주는 함수

SELECT UPPER(last_name) FROM employees;

 LOWER()

 모든 문자를 소문자로 변환해주는 함수

 SELECT last_name
FROM employees
WHERE LOWER(last_name) = 'higgins'
/

 INICAP()

 첫문자는 대문자로, 나머지는 소문자로 변환해주는 함수

SELECT last_name
FROM employees
WHERE last_name = INICAP('higgins')
/

 

 

 문자 조작함수
LENGTH()

 들어온 문자열의 길이를 숫자값으로 표시

SELECT LENGTH('오라클') FROM dual;

 

 

INSTR()

 들어온 문자열에서 두번째 인자를 찾아서 그 위치를 숫자값으로 반환한다.

인자값을 네 개를 넣을 수도 있는데 그 경우 세번째 값은 검색을 시작할 문자열의 위치를 정해주는 것이고 네번째는 찾으려는 값을 계속 찾아서 그 값의 번째값을 찾아주는 것이다.

SELECT INSTR('Hellow', 'w') FROM dual;   => 6이 반환

SELECT INSTR('Hellow', 'l', 2, 2) FROM dual; =>  4가 반환

 

 

숫자 함수

 

 

날짜 관련 함수

오라클에서 날짜는 7개의 단위로 저장된다(세기,  년, 월, 일, 시, 분, 초)

SYSDATE

현재 날짜와 시간을 반환하는 함수

 SELECT SYSDATE FROM dual;

 

MONTHS_BETWEEN()

 두 날짜의 간격을 달수를 기준으로 출력

 SELECT MONTHS_BETWEEN(SYSDATE, '2004-7-7') FROM dual;  ==> 35.9808225

 

ADD_MONTHS()

해당 날짜에서 달수만큼 더해서 출력

  SELECT ADD_MONTHS('2004-7-7', 5) FROM dual; ==> 2004/12/07 00:00:00

NEXT_DAY()

 해당 날짜 다음에 처음으로 오는 지정된 요일의 날짜를 반환

 SELECT NEXT_DAY('2004-7-7', '토요일') FROM dualㅣ ==> 2004/07/10 00:00:00

LAST_DAY()

 해당 날짜의 달의 마지막 날짜를 반환

 SELECT LAST_DAY('2004-7-7') FROM dual  ==> 2004/07/31 00:00:00

 

ROUND / TRUNC

ROUND와 TRUNC함수는 날짜에서도 기준에 따라서 반올림, 버림을 실행한다. 단 날짜와 함께 'MONTH', 'YEAR'등을 인자값으로 넘겨야 한다.