본문 바로가기

프로그래밍 학습/SQL

[MSSQL] ANY구문과 하위쿼리 사용방법

728x90




먼저 하위쿼리란 간단하게 얘기하면 쿼리문 안에 또 쿼리문이 들어있는 것을 말합니다. 박지성의 키보다 키가 큰 사람의 이름과 키를 출력하려면 WHERE 조건에 박지성의 키를 직접 써줘야합니다.


SELECT name,height FROM 테이블명 WHERE height>177

--> 177이라는 것을 직접쓰지 않고 하위 쿼리로 쓰는 것


SELECT name,height FROM 테이블명 WHERE HEIGHT> 

(SELECT height FROM 테이블명 WHERE name='박지성') --> 177의 값을 돌려줌


위의 두 쿼리는 동일한 결과를 가져옴.



휴대폰 국번이 019인 사람의 키보다,키가 크거나 같은 사람을 추출해 보자.


mobile 

name 

height 

 019 

박지성 

177 

  010  

안정환 

180 

010

박주영 

183 

019

홍명보 

185



이때 ANY구문을 써야한다. 하위 쿼리에 둘 이상의 값을 반환하면 비교연산자를 쓸 수가 없기 때문이다.


SELECT name,height FROM 테이블명 WHERE height>=ANY

(SELECT height FROM 테이블명 WHERE mobile='019')