티스토리 뷰

오라클 SQL에서 `AND`와 `OR`을 동시에 사용하는 방법

오라클 SQL에서 `WHERE` 절에 `AND`와 `OR` 논리 연산자를 함께 사용하는 것은 매우 일반적인 요구사항입니다. 이러한 연산자를 조합하여 복잡한 조건을 처리하려면 논리 연산의 우선순위를 명확히 하기 위해 괄호를 사용하는 것이 중요합니다. 올바른 우선순위를 설정하지 않으면 원하는 결과를 얻지 못할 수 있습니다.

기본 예제

가장 간단한 예로, `column1`이 'A'이면서 `column2`가 'B' 또는 'C'인 행을 선택하는 쿼리를 살펴보겠습니다:


SELECT *
FROM your_table
WHERE column1 = 'A' AND (column2 = 'B' OR column2 = 'C');


이 쿼리는 `column1`이 'A'인 조건과 `column2`가 'B' 또는 'C'인 조건을 함께 사용합니다. 괄호를 사용하여 `OR` 조건이 먼저 평가되도록 합니다.

실용적인 예제

조금 더 복잡한 예를 들어보겠습니다. 여기서는 `column1`이 'A'이거나 `column2`가 'B'이면서 `column3`가 'C'인 행을 선택하고자 합니다:


SELECT *
FROM your_table
WHERE (column1 = 'A' OR column2 = 'B') AND column3 = 'C';


이 쿼리는 `column1`이 'A'이거나 `column2`가 'B'인 조건을 먼저 평가한 후, 그 결과와 `column3`가 'C'인 조건을 `AND`로 결합합니다. 괄호를 사용하여 `OR` 조건이 먼저 평가되도록 하여 원하는 조건 조합을 얻을 수 있습니다.

주의사항

1. 조건의 우선순위: 괄호를 사용하지 않으면 SQL은 기본적으로 `AND` 연산을 `OR` 연산보다 먼저 평가합니다. 따라서 복잡한 조건에서는 항상 괄호를 사용하여 우선순위를 명확히 지정해야 합니다.
  
2. 가독성: 괄호를 사용하면 쿼리의 가독성이 높아져 다른 사람들이 쿼리를 이해하고 유지보수하기 쉬워집니다.

3. 테스트와 검증: 복잡한 쿼리를 작성할 때는 부분적으로 조건을 테스트하여 각 부분이 올바르게 동작하는지 확인하는 것이 좋습니다. 이를 통해 전체 쿼리가 예상대로 작동하는지 검증할 수 있습니다.

결론

오라클 SQL에서 `AND`와 `OR`을 동시에 사용할 때는 괄호를 사용하여 논리 연산의 우선순위를 명확히 하는 것이 중요합니다. 이를 통해 복잡한 조건을 효과적으로 처리하고 원하는 결과를 정확하게 얻을 수 있습니다.

복잡한 쿼리를 작성할 때는 항상 괄호를 사용하여 조건을 명확히 구분하고, 각 조건을 개별적으로 테스트하여 전체 쿼리가 예상대로 작동하는지 확인하는 것이 좋습니다.

최근에 올라온 글