MSSQL 하위 쿼리에서 값을 둘 이상 반환했습니다
페이지 정보
본문
[ 문제 ]
Microsoft OLE DB Provider for SQL Server 오류 '80004005'
하위 쿼리에서 값을 둘 이상 반환했습니다. 하위 쿼리 앞에 =, !=, <, <=, >, >= 등이 오거나 하위 쿼리가 하나의 식으로 사용된 경우에는 여러 값을 반환할 수 없습니다.
[ 답변1 ]
하위쿼리 사용된 부분만 따로 조회해 보세요..결과값에 2개 이상 행이 반환되고 있을꺼에요
SubQuery에 값이 두 개 나오지 말아야 한다면 그 부분 체크해 보시고요.
[ 답변2 ]
특정 select 절의 반환값이 두 개 이상이라서 나오는 메세지
[ 답변3 ]
에러 ex)
select name, height
from userTB
where height >= (select height from userTB where mobile1 = '010')
일때 하위쿼리 값이 179, 185 두개의 값을 반환된다면
이럴때 오류가 발생한다.
select name, height
from userTB
where height >= any (select height from userTB mobile1 = '010')
some
로 처리하면 179보다 크거나 같은 사람, 185보다 크거나 같은 사람이 줄줄이 나온다.
결국 179보다 큰 사람이 쭉 나오는데
select name, height
from userTB
where height >= all (select height from userTB where mobile = '010')
로 바꿔서 처리하면 결과는 적게 나온다.
179보다 크거나 같은 뿐만 아니라, 185보다 크거나 같은 사람을 뽑아야 하기 때문에
185보다 크거나 같은 사람이 나온다.
즉,
any, some 은 여러개의 결과 중 한가지만 만족해도 되며
all 은 두가지 다 만족해야 한다.
[ 답변4 ]
하위 쿼리 앞에 =, !=, <, <= , >, >= 등이 오거나 하위 쿼리가 하나의 식으로 사용된 경우에는 여러 값을 반환할 수 없습니다.
이 메시지는 coin 에 값이 하나만 와야 하는데..
하위쿼리의 결과 값이 둘이상이 와서 그렇습니다. 조건절을 조절하시거나 top 을 이용하시면 됩니다.
참조사이트
http://www.sqler.com/435806
http://blog.naver.com/lovefavaz/140122700901
http://www.hoons.net/board/qaaspnet/content/8521
Microsoft OLE DB Provider for SQL Server 오류 '80004005'
하위 쿼리에서 값을 둘 이상 반환했습니다. 하위 쿼리 앞에 =, !=, <, <=, >, >= 등이 오거나 하위 쿼리가 하나의 식으로 사용된 경우에는 여러 값을 반환할 수 없습니다.
[ 답변1 ]
하위쿼리 사용된 부분만 따로 조회해 보세요..결과값에 2개 이상 행이 반환되고 있을꺼에요
SubQuery에 값이 두 개 나오지 말아야 한다면 그 부분 체크해 보시고요.
[ 답변2 ]
특정 select 절의 반환값이 두 개 이상이라서 나오는 메세지
[ 답변3 ]
에러 ex)
select name, height
from userTB
where height >= (select height from userTB where mobile1 = '010')
일때 하위쿼리 값이 179, 185 두개의 값을 반환된다면
이럴때 오류가 발생한다.
select name, height
from userTB
where height >= any (select height from userTB mobile1 = '010')
some
로 처리하면 179보다 크거나 같은 사람, 185보다 크거나 같은 사람이 줄줄이 나온다.
결국 179보다 큰 사람이 쭉 나오는데
select name, height
from userTB
where height >= all (select height from userTB where mobile = '010')
로 바꿔서 처리하면 결과는 적게 나온다.
179보다 크거나 같은 뿐만 아니라, 185보다 크거나 같은 사람을 뽑아야 하기 때문에
185보다 크거나 같은 사람이 나온다.
즉,
any, some 은 여러개의 결과 중 한가지만 만족해도 되며
all 은 두가지 다 만족해야 한다.
[ 답변4 ]
하위 쿼리 앞에 =, !=, <, <= , >, >= 등이 오거나 하위 쿼리가 하나의 식으로 사용된 경우에는 여러 값을 반환할 수 없습니다.
이 메시지는 coin 에 값이 하나만 와야 하는데..
하위쿼리의 결과 값이 둘이상이 와서 그렇습니다. 조건절을 조절하시거나 top 을 이용하시면 됩니다.
참조사이트
http://www.sqler.com/435806
http://blog.naver.com/lovefavaz/140122700901
http://www.hoons.net/board/qaaspnet/content/8521
댓글목록
등록된 댓글이 없습니다.