본문 바로가기
Skills/MsSQL

WHERE 1=1 조건절 사용 이유

by Hoseok 2023. 9. 6.
728x90
반응형

 

"WHERE 1=1" 조건절은 항상 참인 조건을 나타낸다.

 

항상 참을 나타내는 조건을 왜 굳이 넣는걸까?

 

크게 2가지 이유가 있는 것 같다.

 

동적 쿼리

"WHERE 1=1"을 사용하면 동적 쿼리의 WHERE 절에 조건을 쉽게 추가하거나 제거할 수 있다. 또한 가독성과 유지보수에도 좋다.

 

예시)

DECLARE @DynamicSQL NVARCHAR(MAX) = N'
SELECT Column1, Column2
FROM MyTable
WHERE 1=1'

-- 동적으로 조건 추가
IF @Condition1 = 1
BEGIN
    SET @DynamicSQL = @DynamicSQL + N' AND Column1 = @Value1'
END

IF @Condition2 = 1
BEGIN
    SET @DynamicSQL = @DynamicSQL + N' AND Column2 = @Value2'
END

-- 동적 쿼리 실행
EXEC sp_executesql @DynamicSQL, N'@Value1 DataType1, @Value2 DataType2', @Value1, @Value2


주석처리 용이

 

아래 예시처럼, "WHERE 1=1"을 사용하면 다른 조건절을 주석처리할 때, 유용하다.

 

예시)

SELECT EmployeeName, Salary
FROM Employee
WHERE 1=1
AND Salary >= 50000
AND Department = 'Sales'
-- 주석 처리
-- AND StartDate >= '2023-01-01';
728x90
반응형