사용자 정의 함수 종류 및 사용 예
스칼라 함수
설명 : 단일 값을 반환하는 함수입니다.
입력 매개변수를 받아 연산을 수행하고 하나의 결과 값을 반환합니다.
반환 값의 데이터 형식은 INT, VARCHAR, DATE 등 모든 스칼라 데이터 형식이 될 수 있습니다.
예제 :
-- 두 숫자의 합을 반환하는 스칼라 함수
CREATE FUNCTION dbo.SumNumbers (@num1 INT, @num2 INT)
RETURNS INT
AS
BEGIN
RETURN @num1 + @num2;
END;
-- 함수 호출
SELECT dbo.SumNumbers(10, 20);
테이블 반환 함수 (인라인)
설명 : 테이블 형식의 결과를 반환하는 함수입니다.
하나의 SELECT 문을 사용하여 테이블을 반환합니다.
인라인 테이블 반환 함수는 성능이 우수하며 뷰(View)와 유사하게 사용할 수 있습니다.
예제 :
-- 특정 부서의 사원 목록을 반환하는 테이블 반환 함수 (인라인)
CREATE FUNCTION dbo.GetEmployeesByDepartment (@deptId INT)
RETURNS TABLE
AS
RETURN
SELECT employee_id, first_name, last_name
FROM employees
WHERE department_id = @deptId;
-- 함수 호출
SELECT * FROM dbo.GetEmployeesByDepartment(90);
테이블 반환 함수 (다중 문)
설명 : 테이블 형식의 결과를 반환하는 함수입니다.
여러 개의 SQL 문을 사용하여 테이블을 구성하고 반환합니다.
예제 :
-- 특정 급여 범위의 사원 목록을 반환하는 테이블 반환 함수 (다중 문)
CREATE FUNCTION dbo.GetEmployeesBySalaryRange
(@minSalary INT, @maxSalary INT)
RETURNS @employeeTable TABLE (
employee_id INT,
first_name VARCHAR(50),
last_name VARCHAR(50)
)
AS
BEGIN
INSERT INTO @employeeTable
SELECT employee_id, first_name, last_name
FROM employees
WHERE salary BETWEEN @minSalary AND @maxSalary;
RETURN;
END;
-- 함수 호출
SELECT * FROM dbo.GetEmployeesBySalaryRange(5000, 10000);
'코딩 이야기 > MS SQL' 카테고리의 다른 글
MSSQL 커서 사용법 (0) | 2025.03.31 |
---|---|
MSSQL 프로시저 사용법 (0) | 2025.03.31 |
MSSQL UNION 사용 방법 (0) | 2025.03.31 |
MSSQL 그룹 SELECT 사용법 (0) | 2025.03.31 |
MSSQL DELETE 방법 (0) | 2025.03.30 |