SQL

SQL> SQL 함수의 사용

황기하 2022. 11. 25.

SQL 문에서 함수를 사용할 수 있는데,
함수는 어떤 값을 입력을 받아 새로운 값으로 출력해 주는 역할을 한다.

 

예를 들어 SELECT UPPER(City)는

City라는 컬럼의 문자값을 모두 대문자로 변경하여 출력해 준다.

 

SQL Server에는

UPPER와 같이 기본적으로 내장되어 있는 함수들이 많으며,

사용자 필요에 따라 사용자 정의 함수를 만들어 쓸 수 있다.

 

문자열 함수

SQL 문에서 흔히 사용하는 함수로서 문자열 관련 함수를 들 수 있다.
부분 문자열을 추출하는 SubString, Left, Right 등과
문자열의 길이를 구하는 Len, DataLength,
불필요한 공란을 삭제하는 LTrim, RTrim 등의 다양한 함수들이 있다.

함수 예제
SUBSTRING() SELECT SUBSTRING(zip, 1, 5) FROM tab
zip컬럼에서 첫번째 문자로부터 5자를 뽑아 부분 문자열을 리턴한다.
LEFT() SELECT LEFT(zip, 5) FROM tab
zip컬럼에서 왼쪽으로부터 5자를 뽑아 부분 문자열을 리턴한다.
RIGHT() SELECT RIGHT(zip, 5) FROM tab
zip컬럼에서 오른쪽으로부터 5자를 뽑아 부분 문자열을 리턴한다.
LEN() SELECT LEN(zip) FROM tab
zip컬럼값의 실제 화면에 표시되는 문자수를 리턴한다. 만약 뒤에 공란이 있으면, 이는 세지 않는다.
DATALENGTH() SELECT DATALENGTH(zip) FROM tab
zip컬럼값의 바이트 수를 리턴한다. 유니코드 문자가 저장된 NVARCHAR, NCHAR 등의 컬럼은 문자 5자를 입력했더라도, 실제 바이트수는 두 배이므로 10을 출력한다.
LTRIM() SELECT LTRIM(zip) FROM tab
LTRIM은 왼쪽에 공란이 있으면 제거한다
RTRIM() SELECT RTRIM(zip) FROM tab
RTRIM은 오른쪽에 공란이 있으면 제거한다
UPPER() SELECT UPPER(City) FROM tab
City컬럼의 문자열을 모두 대문자로 변경해 리턴한다
LOWER() SELECT LOWER(City) FROM tab
City컬럼의 문자열을 모두 소문자로 변경해 리턴한다

 

날짜 시간  함수

SQL은 다양한 날짜 관련 함수들을 제공하고 있다.
날짜에서 년도만 뽑아낸다던지 (DATEPART),
날짜에 몇 일을 더하거나 뺄수도 있고 (DATEADD),
두 날짜의 차이를 구하는 함수(DATEDIFF) 등도 있다.
CONVERT() 를 사용하여 날짜를 특정 포맷으로 변경하여 출력할 수 있다.

 

◆ DateTime컬럼에서 연도만 출력
    SELECT DATEPART(yyyy, LastUpdate) FROM Scores


 YEAR()함수를 써도 된다.
    SELECT * FROM Scores WHERE YEAR(LastUpdate) >= 2010

 

-- 문자 변수 정의
DECLARE @strDate varchar(50)

-- 날짜를 특정 포맷으로 변경
-- (날짜 스타일 102는 yyyy.mm.dd)

SELECT @strDate = CONVERT(varchar, LastUpdate, 102) 
FROM [Scores]
WHERE Id = 1

-- 결과 출력 (2012.01.18)
SELECT @strDate

 

수학  함수

SQL은 다양한 수학적 함수들을 제공하고 있다.
절대값을 구하는 ABS()함수,
사인 코사인 탄젠트를 구하는 SIN(), COS(), TAN(),
기타 SQRT(), PI(), EXP() 등등의 함수를 제공한다.

 

또한 통계 연산 함수들로서
평균을 구하는 AVG(),
합계를 구하는 SUM(),
레코드수를 구하는 COUNT(),
최대 최소를 구하는 MAX(), MIN() 등등이 있다.

 

--원의 면적 구하기
DECLARE @R FLOAT
SET @R = 3.0
SELECT PI() * @R * @R

--점수 평균 및 합계 산출
SELECT SUM(Score),AVG(Score) FROM Scores

 

'SQL' 카테고리의 다른 글

SQL> 쿼리 : 서브쿼리 (Subquery)  (1) 2022.11.25
SQL> DECALRE : 로컬 변수 선언  (0) 2022.11.25
SQL> 테이블 조인 (JOIN)  (0) 2022.11.25

댓글