Skills/MsSQL
WHERE 1=1 조건절 사용 이유
Homil-Rye
2023. 9. 6. 12:20
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
반응형