MSSQL IN 다중조건 사용 방법

검색 조건에 같은 컬럼에서 여러개 레코드를 취득하고 싶은 경우가 있습니다.

예를 들어 A라는 컬럼에 값이 1,3,4,7 인 레코드를 취득하고 싶은 경우 OR 조건을 사용해서 취득하기도 합니다.

 

OR 조건 예제

SELECT
	*
FROM
	STUDENT_GRADE
WHERE A = 1 OR A = 3 OR A = 4 OR A = 7

OR 조건을 사용해 동일한 컬럼에서 여러 개의 값을 취득할 수 있지만 취득하고 싶은 값이 많아지면 OR 조건과 컬럼 명도 계속해서 나열해줘야 합니다.

 

IN 사용 방법

IN을 사용하면 하나의 컬럼에서 여러개 값을 취득할 수 있습니다.

위에서 사용한 OR 조건을 IN으로 바꾸면 아래와 같습니다.

IN 예제

SELECT
	*
FROM
	STUDENT_GRADE
WHERE A IN (1,3,4,7)

 

조건문이 심플해졌습니다.

또한 취득하고 싶은 값이 늘어나도 컬럼 이름은 한 번만 작성해도 됩니다.

 

NOT IN 사용 방법

반대로 지정한 값 이외의 값을 취득하고 싶은 경우에는 NOT IN을 사용합니다.

NOT IN 예제

SELECT
	*
FROM
	STUDENT_GRADE
WHERE A NOT IN (1,3,4,7)

 

A컬럼 값이 1,3,4,7이 아닌 모든 레코드를 취득합니다.

NOT IN을 사용할 때 주의점이 있습니다.

처리 속도가 느려질 수 있습니다.

내부에서는 모든 데이터를 검색하게 됩니다.

즉, 검색 조건에 지정한 값 이외의 모든 데이터를 찾게 됩니다.

데이터가 많은 대량의 테이블에서는 주의해서 사용해야 합니다.

댓글