CASE WHEN
은 T-SQL의 조건부 식으로, 주로 SELECT 문, UPDATE 문, 그리고 집계 함수 내에서 사용되어 참조하는 칼럼에 따른 결과 값을 동적으로 조정할 수 있습니다.
CASE WHEN
구문의 기본 구조는 다음과 같습니다.
sql
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
[ELSE resultN]
END
예를 들어, 회원 등급을 기준으로 할인율을 다르게 적용하는 쿼리는 다음과 같이 작성할 수 있습니다:
sql
SELECT
MemberName,
MembershipGrade,
Price * (1 - (CASE
WHEN MembershipGrade = 'Gold' THEN 0.1
WHEN MembershipGrade = 'Silver' THEN 0.05
ELSE 0
END)) AS DiscountedPrice
FROM
Members;
IF
문은 T-SQL 작업의 제어 흐름을 구현하는데 사용되며, 프로시저나 함수, 배치 작업, 트리거 등에서 주로 사용됩니다. 일반적인 프로그래밍 언어의 IF-THEN-ELSE 구조와 유사하게 작동합니다.
IF
문의 기본 구조는 다음과 같습니다.
sql
IF condition
BEGIN
-- Statements if condition is TRUE
END
ELSE
BEGIN
-- Statements if condition is FALSE
END
예를 들어, 주문 테이블(OrderTable)의 특정 주문(OrderID)에 대한 합계 금액(TotalAmount)이 1000 이상이면, 주문 상태를 'High Value'로 업데이트하는 경우 다음과 같이 작성할 수 있습니다:
sql
DECLARE @TotalAmount DECIMAL(10, 2);
SELECT @TotalAmount = TotalAmount
FROM OrderTable
WHERE OrderID = 1;
IF (@TotalAmount >= 1000)
BEGIN
UPDATE OrderTable
SET OrderStatus = 'High Value'
WHERE OrderID = 1;
END
ELSE
BEGIN
PRINT 'Order amount is not high enough.';
END
결론적으로, CASE WHEN
은 주로 쿼리 결과 값에 조건에 따라 변화를 주는 데 사용되며, IF
문은 T-SQL 작업 내에서 실행 흐름 제어를 위해 사용됩니다.