SQLD 기출문제 예상문제 68번
다음 문제를 풀어보세요.
다음 중 사용자 정의 함수를 사용하여 주문 금액을 기준으로 고객 등급을 부여하는 함수를 생성하려 한다. 아래 코드에서 발생할 수 있는 잠재적인 성능 문제를 설명하고, 이를 해결하기 위한 가장 적절한 방법을 고르시오.
CREATE FUNCTION GetCustomerGrade (@OrderAmount DECIMAL(18,2))
RETURNS VARCHAR(20)
AS
BEGIN
DECLARE @Grade VARCHAR(20);
IF @OrderAmount >= 1000000
SET @Grade = 'VIP';
ELSE IF @OrderAmount >= 500000
SET @Grade = 'Gold';
ELSE IF @OrderAmount >= 100000
SET @Grade = 'Silver';
ELSE
SET @Grade = 'Bronze';
RETURN @Grade;
END;
GO
-- 성능 문제가 발생하는 쿼리 예시
SELECT CustomerID, OrderID, GetCustomerGrade(OrderAmount) AS CustomerGrade
FROM Orders;