MSSQL 스칼라 함수 사용법 및 예제 – 사용자 정의 함수
MS SQL에서 사용자 정의 함수는 다른 프로그래밍 언어 함수처럼 매개 변수를 받아 복잡한 동작을 수행한 후 해당 결괏값을 반환합니다. 이때 반환 값은 단일 값 이거나 결과 집합일 수 있습니다. 매번 쿼리문을 작성하는 것보다 사용자 정의 함수를 만들어 놓고 필요할 때마다 사용하는 게 효율적인 경우가 많이 있습니다. 함수 유형은 스칼라 함수, 테이블 반환 함수, 시스템 함수가 있고 이번 포스트는 스칼라 함수에 대해서 알아보죠.
그럼 간단한 예제를 통해서 스칼라 함수 사용법에 대해서 알아보죠.
포스트 기준
– Microsoft SQL Server 2019
– SSMS 18.11
스칼라 함수를 생성하는 방법은 SSMS 툴로 스칼라 함수를 생성하는 방법과 쿼리문으로 생성하는 방법이 있는데 쿼리문으로 생성하는 방법에 대해서만 알아보죠.
사용 예제
1. SSMS 툴로 스칼라 함수 생성
▶ 데이터베이스 → 프로그래맹 기능 → 함수 → 스칼라 반환 함수 → 스칼라 반환 함수(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. 생성된 스칼라 함수 확인

함께 보면 좋은 게시글
- MSSQL 테이블 반환 함수 사용법 및 예제 – 사용자 정의 함수
- MSSQL 저장 프로시저 사용법(실행) 및 예제 (TRY…CATCH 등)
- MSSQL 테이블 변수 생성 및 사용 방법
- MSSQL 변수 – 선언(DECLARE), 대입(SET), 반환(SELECT)
- MSSQL 동적 쿼리 사용법, 저장 프로시저 및 함수 활용
이 글이 도움이 되셨다면 공유 부탁 드립니다.


![[SSMS] 로컬 서버(PC)에 설치한 MSSQL 서버 연결하는 방법](https://bluesharehub.com/wp-content/uploads/2022/02/img_41.png)
