MSSQL 스칼라 함수 사용법 및 예제 - 사용자 정의 함수

MSSQL 스칼라 함수 사용법 및 예제 – 사용자 정의 함수

MS SQL에서 사용자 정의 함수는 다른 프로그래밍 언어 함수처럼 매개 변수를 받아 복잡한 동작을 수행한 후 해당 결괏값을 반환합니다. 이때 반환 값은 단일 값 이거나 결과 집합일 수 있습니다. 매번 쿼리문을 작성하는 것보다 사용자 정의 함수를 만들어 놓고 필요할 때마다 사용하는 게 효율적인 경우가 많이 있습니다. 함수 유형은 스칼라 함수, 테이블 반환 함수, 시스템 함수가 있고 이번 포스트는 스칼라 함수에 대해서 알아보죠. 

그럼 간단한 예제를 통해서 스칼라 함수 사용법에 대해서 알아보죠.

포스트 기준

– Microsoft SQL Server 2019

– SSMS 18.11

스칼라 함수를 생성하는 방법은 SSMS 툴로 스칼라 함수를 생성하는 방법과 쿼리문으로 생성하는 방법이 있는데 쿼리문으로 생성하는 방법에 대해서만 알아보죠.

사용 예제

1. SSMS 툴로 스칼라 함수 생성

▶ 데이터베이스 → 프로그래맹 기능 → 함수 → 스칼라 반환 함수 → 스칼라 반환 함수(S)

데이터베이스 → 프로그래맹 기능 → 함수 → 스칼라 반환 함수 → 스칼라 반환 함수(S)


2. 사용 예제 1

▶ 학번을 매개 변수로 받아 이름을 반환하는 스칼라 함수

/* 학번을 매개 변수로 받아 이름을 반환하는 스칼라 함수 */
CREATE FUNCTION SFN_BS_DEMO_1 (@IN_P_ID NVARCHAR(50))   -- 매개 변수 : 학번
RETURNS NVARCHAR(50)   -- 반환 값 : 이름
     
BEGIN
     
   DECLARE @NAME	NVARCHAR(50)
     
   -- 이름 가져오기
   SELECT @NAME = NAME
     FROM BS_DEMO_8_1
    WHERE P_ID = @IN_P_ID
     
   IF @NAME IS NULL	  
      SET @NAME = '이름없음'
    
   -- 이름 반환
   RETURN @NAME
     
END
     
GO
학번을 매개 변수로 받아 이름을 반환하는 스칼라 함수 예제


▶ 스칼라 함수 사용 예제

스칼라 함수 사용 예제


3. 사용 예제 2

▶ 학번을 매개 변수로 받아 평균점수를 반환하는 스칼라 함수

/* 학번을 매개 변수로 받아 평균점수를 반환하는 스칼라 함수 */
CREATE FUNCTION SFN_BS_DEMO_2 (@IN_P_ID NVARCHAR(50))   -- 매개 변수 : 학번
RETURNS SMALLINT   -- 반환 값 : 평균점수
     
BEGIN
     
   DECLARE @AVG	SMALLINT
     
   -- 평균점구 구하기
   SELECT @AVG = SUM(SCORE) / COUNT(*)
     FROM BS_DEMO_8_4
    WHERE P_ID = @IN_P_ID
     
   IF @AVG IS NULL	  
      SET @AVG = 0
     
   -- 평균점수 반환
   RETURN @AVG
     
END
     
GO
학번을 매개 변수로 받아 평균점수를 반환하는 스칼라 함수 예제


▶ 스칼라 함수 사용 예제

스칼라 함수 사용 예제


4. 생성된 스칼라 함수 확인

생성된 스칼라 함수 확인

함께 보면 좋은 게시글

위로 스크롤