SQL Server OR 조건이란?
SQL Server(Transact-SQL)의 OR 조건은 여러 조건을 동시에 검사하여, 반환되는 결과 중 단 하나라도 조건을 만족하는 레코드가 있으면 그 레코드를 선택하는 논리 연산자입니다. 주로 SELECT, INSERT, UPDATE, DELETE 문의 WHERE 절에서 널리 사용됩니다.
OR 조건 기본 문법
WHERE 조건1
OR 조건2
...
OR 조건n;매개변수 설명
- 조건1, 조건2 … 조건n: 검사할 개별 조건들을 의미합니다.
- 나열된 조건 중 하나라도 만족하면 해당 레코드가 결과에 포함됩니다.
참고 사항
- SQL Server의 OR 조건은 두 개 이상의 조건을 동시에 검사할 수 있습니다.
- OR 조건에서는 나열된 조건(1번부터 n번까지) 중 어느 하나만 충족되어도 해당 레코드가 결과 집합에 반환됩니다.
예제 1 – 조건 2개를 사용한 SELECT 문
SELECT *
FROM nhanvien
WHERE ten = 'Sarah'
OR ho = 'Johnson';이 쿼리는 이름(ten)이 'Sarah'이거나 성(ho)이 'Johnson'인 모든 직원을 조회합니다. SELECT 절에서 *를 사용했기 때문에 테이블의 모든 컬럼이 결과 집합에 포함됩니다.
예제 2 – 조건 3개를 사용한 SELECT 문
SELECT ho, ten
FROM nhanvien
WHERE ho = 'Anderson'
OR bang = 'California'
OR nhanvien_id = 50;이 예제에서는 성이 'Anderson'이거나 소속 주(bang)가 'California'이거나 직원 ID(nhanvien_id)가 50인 직원들의 성과 이름이 반환됩니다.
예제 3 – INSERT 문에서의 활용
INSERT INTO danhba
(danhba_id, ho, ten)
SELECT nhanvien_id, ho, ten
FROM nhanvien
WHERE ho = 'Smith'
OR nhanvien_id < 10;이 문장은 성이 'Smith'이거나 직원 ID가 10 미만인 직원들의 ID, 성, 이름 데이터를 직원 테이블(nhanvien)에서 조회해 연락처 테이블(danhba)에 삽입합니다.
예제 4 – UPDATE 문에서의 활용
UPDATE nhanvien
SET bang = 'Florida'
WHERE nhanvien_id < 1000
OR thanhpho = 'Miami';위 예제에서 OR 조건은 직원 ID가 1000 미만이거나 거주 도시(thanhpho)가 'Miami'인 레코드의 주(bang) 값을 'Florida'로 업데이트합니다.
예제 5 – DELETE 문에서의 활용
DELETE FROM nhanvien
WHERE ten = 'Joanne'
OR ten = 'Darlene';이 예제의 OR 조건은 이름이 'Joanne' 또는 'Darlene'인 모든 직원 레코드를 테이블에서 삭제합니다.
추가 팁: AND 조건과의 차이점
AND 조건은 모든 조건을 만족해야 레코드가 반환되는 반면, OR 조건은 하나라도 만족하면 됩니다. 복잡한 쿼리에서 두 연산자를 함께 사용할 때는 괄호를 활용해 평가 순서를 명확히 지정하는 것이 좋습니다. 이를 통해 의도하지 않은 결과를 방지하고 쿼리의 가독성과 유지보수성을 높일 수 있습니다.