식에 사용하는 함수

업데이트: 2007년 11월

함수는 사용자가 활용할 수 있도록 저장된 연산입니다. 데이터베이스 관리 시스템에서 제공하는 기본 함수를 사용하거나 자신만의 고유한 사용자 정의 함수를 만들 수 있습니다.

식을 만들 때 다음과 같은 다양한 함수를 호출할 수 있습니다.

  • 문자열(문자) 함수

  • 날짜 함수

  • 수학 함수

  • 시스템 함수

  • 데이터를 다른 형식으로 변환하는 기타 함수

  • 사용자 정의 함수

일반적으로 사용자의 데이터베이스에서 사용할 수 있는 함수에 대해 잘 알고 있으면 해당 데이터베이스에서 지원하는 함수 이름과 구문을 사용할 수 있습니다. 뷰, 저장 프로시저 또는 트리거를 만드는 경우와 같이 데이터베이스 고유의 함수 이름과 구문을 사용해야 하는 경우도 있습니다.

쿼리 및 뷰 디자이너는 다음을 수행하여 함수 사용 작업을 도와 줍니다.

  • 함수 인수에 정확히 인용 부호 삽입

  • 인수의 데이터 형식 확인

  • 반환 값의 데이터 형식 확인

데이터베이스에서 지원하는 함수에 대한 자세한 내용은 데이터베이스 설명서를 참조하십시오.

참고:

특수 함수 집합인 집계 함수(예: SUM( ), AVG( ))를 사용하여 데이터를 요약하는 쿼리를 만들 수 있습니다. 자세한 내용은 쿼리 결과 요약을 참조하십시오.

문자열 함수

다음은 문자열을 조작하기 위한 함수이며 여러 가지 데이터베이스에 사용할 수 있는 예제가 함께 나와 있습니다.

함수

설명

예제

LCASE( )*,  LOWER( )

문자열을 소문자로 변환합니다.

첫째 문자를 대문자로 만들려면 다음을 사용합니다.

  • SELECT UPPER(substring(lname, 1, 1))

나머지 문자를 소문자로 변환하려면 다음을 사용합니다.

  • LOWER(substring (lname, 2, 99))

FROM employee

성의 첫 문자를 대문자로 변환하고 나머지 문자를 소문자로 변환한 다음 표시합니다.

LTRIM( )

문자열에서 선행 공백을 제거합니다.

SELECT stor_name, LTRIM(stor_address)
FROM stores

맨 앞에서 불필요한 공백을 제거한 다음 주소 열을 표시합니다.

SUBSTRING( )

문자열에서 하나 이상의 문자를 추출합니다.

SELECT SUBSTRING(phone,1,3)
FROM employee

전화 번호의 처음 세 문자(지역 번호)를 표시합니다.

UCASE( )*,  UPPER( )

문자열을 대문자로 변환합니다.

SELECT * FROM employee
WHERE UPPER(lname) = 'SMITH'

lname 열의 내용을 특정 값과 비교하기 전에 대문자로 변환합니다. 이렇게 하면 대/소문자를 구분하는 검색에서 일치하지 않는 항목으로 나타나는 것을 방지할 수 있습니다.

*   ODBC 함수로 호출하는 경우 { fn LCASE(text) } 구문을 사용합니다.

날짜 함수

다음 함수 및 이와 유사한 기타 함수를 여러 데이터베이스에 사용할 수 있습니다.

함수

설명

예제

DATEDIFF( )

두 날짜 사이의 간격을 계산합니다.

SELECT fname, lname, hire_date
FROM employee
WHERE DATEDIFF(year, hire_date, getdate()) > 5

근무 연수가 5년이 넘는 직원을 모두 찾습니다.

DATEPART( )

일, 월, 년을 포함하여 날짜 열 또는 datetime 열의 지정된 부분을 반환합니다.

SELECT DATEPART(year, hire_date)
FROM employee

직원의 입사 연도만(전체 날짜 아님) 표시합니다.

CURDATE( )*,  GETDATE( ) 또는 DATE( )

datetime 형식의 현재 날짜를 반환합니다. 이 함수는 오늘 날짜에서 앞으로 또는 뒤로 간격을 계산하는 것과 같이 다른 여러 날짜 함수의 입력으로 사용하면 유용합니다.

SELECT order_id
FROM orders
WHERE order_date = GETDATE()
Displays orders placed today.

수학 함수

대부분의 데이터베이스에서는 계산에 사용할 수 있는 몇 가지 수학 함수를 제공합니다. 다음은 여러 데이터베이스에서 일반적으로 사용할 수 있는 함수입니다.

참고:

집계 함수 AVG( ), COUNT( ), MAX( ), MIN( ), SUM( ) 등을 사용하여 보고서에 평균과 합계를 표시할 수 있습니다.

함수

설명

예제

ROUND( )

지정된 소수 자릿수로 반올림합니다.

SELECT ROUND(qty * (price * discount), 2)
FROM sales

할인율을 적용하여 총 가격을 표시한 다음 결과를 반올림하여 소수점 이하 두 자리로 나타냅니다.

FLOOR( )

소수부를 가장 근사한(가장 작은) 정수로 잘라버립니다.

UPDATE titles
SET price = FLOOR(price)

titles 테이블에서 모든 가격의 소수부를 가장 근사한 정수로 잘라버립니다.

CEILING( )

소수부를 가장 근사한 정수로 올립니다.

INSERT INTO archivetitle
SELECT title, CEILING(price)
FROM titles

titles 테이블의 title 및 price(소수부를 가장 근사한 정수로 올림)를 archivetitle 테이블에 복사합니다.

시스템 함수

대부분의 데이터베이스에서는 현재 데이터베이스, 현재 사용자 또는 서버 정보를 반환하는 데 사용할 수 있는 특수 함수를 사용할 수 있습니다. 다음은 여러 데이터베이스에서 일반적으로 사용할 수 있는 함수입니다.

함수

설명

예제

DATALENGTH( )

지정된 식에 사용되는 바이트 수를 반환합니다.

SELECT DATALENGTH(au_lname)
FROM authors

성과 이름에 필요한 바이트 수를 표시합니다.

USER( )*,  USER_NAME( )

현재 사용자 이름을 반환합니다.

SELECT company_name, city, phone
FROM customers
WHERE salesperson = USER_NAME()

쿼리를 실행하는 영업 직원의 고객 목록을 만듭니다.

기타 함수

일부 데이터베이스에서는 앞에서 언급한 함수 외에 데이터 형식 변환 또는 기타 유틸리티 함수와 같이 쿼리를 만드는 데 사용할 수 있는 다른 함수를 제공합니다. 다음 함수는 여러 데이터베이스에서 사용할 수 있는 유틸리티 함수의 형식을 설명합니다.

함수

설명

예제

CONVERT( )

데이터 형식을 다른 형식으로 변환합니다. 이 함수는 데이터의 형식을 지정하거나 데이터 열의 내용을 다른 데이터 형식을 필요로 하는 함수의 인수로 사용하는 데 유용합니다.

SELECT 'Hired: ' + CONVERT(char (11),
  hire_date)
FROM employee

앞에 캡션을 포함하여 날짜를 표시합니다. CONVERT( ) 함수는 날짜를 리터럴 문자열과 연결할 수 있도록 문자열로 만듭니다.

SOUNDEX( )

지정된 식의 Soundex 코드를 반환합니다. 이 코드를 사용하여 "비슷한 발음"을 검색할 수 있습니다.

SELECT au_lname, au_fname
FROM authors
WHERE SOUNDEX(au_fname) = 'M240'

"Michael"과 발음이 비슷한 이름을 검색합니다.

STR( )

수치 데이터를 텍스트 연산자를 사용하여 조작할 수 있도록 문자열로 변환합니다.

SELECT str(job_id)
FROM employee

job_id 열을 단일 문자열로 표시합니다.

참고 항목

개념

쿼리에서의 식

참조

식의 구조

기타 리소스

매개 변수를 사용하여 쿼리