WHERE 1=1

2023. 2. 7. 09:56Oracle

WHERE 1=1은 SQL에서 일반적으로 사용되는 구문으로, WHERE절이나 AND절을 작성할 때, 조건을 추가하는데 유용합니다. 하지만, 조건절이 없는 쿼리에 대해서도 WHERE 1=1을 사용하는 경우가 있습니다. 이렇게 하는 이유는 쿼리를 동적으로 생성하는 코드에서 쉽게 조건을 추가하고 삭제할 수 있기 때문입니다.

예를 들어, 다음과 같은 동적 쿼리를 작성할 경우를 생각해보겠습니다.

SELECT *
FROM customers
WHERE 1=1

 

이 쿼리는 WHERE 절이 있지만, 1=1 조건이 무조건 참이므로, 모든 레코드를 반환합니다. 이후 코드에서 WHERE 절에 조건을 추가하거나 삭제할 때, AND절을 사용하여 각 조건을 추가할 수 있습니다. 예를 들어, 다음과 같이 작성할 수 있습니다.

-- 이름이 "John"인 고객만 반환하는 쿼리
SELECT *
FROM customers
WHERE 1=1
  AND name = 'John'

-- 이름이 "John"이고, 나이가 30인 고객만 반환하는 쿼리
SELECT *
FROM customers
WHERE 1=1
  AND name = 'John'
  AND age = 30

이러한 방식은 코드의 가독성을 높이고, 쿼리의 일부분을 주석처리하거나 삭제하는 등의 작업도 용이하게 합니다. 단, WHERE 1=1을 사용하면 쿼리 실행 시 불필요한 조건이 포함되므로, 성능 저하가 발생할 수 있으니 주의해야 합니다.

'Oracle' 카테고리의 다른 글

프로그래머스 SQL - 5월 식품들의 총매출 조회하기  (0) 2023.02.08
NVL  (0) 2023.02.07
DECODE  (0) 2023.02.07