SQL Server 2005에 있는데 오류가 발생하는 것으로 알고 있습니다.오류를 일으키는 IN() 절의 하위 쿼리
Msg 512, Level 16, State 1, Procedure spGetSavedSearchesByAdminUser, Line 8 Subquery
returned more than 1 value. This is not permitted when the subquery
follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
나는 this MSDN 링크를 예제 #의 B를 다음입니다.
내 저장된 proc 코드는 다음과 같습니다. 당신이 그렇게 요청하는 경우이 게시물의 위해를 단순화 할 수 있습니다 :
ALTER PROCEDURE [dbo].[spGetSavedSearchesByAdminUser]
@strUserName varchar(50)
,@bitQuickSearch bit = 0
AS
BEGIN
SELECT [intSearchID] ,strSearchTypeCode ,[strSearchName]
FROM [tblAdminSearches]
WHERE
strUserName = @strUserName
AND
strSearchTypeCode
IN (
CASE @bitQuickSearch
WHEN 1 THEN 'Quick'
ELSE (SELECT strSearchTypeCode FROM tblAdvanceSearchTypes)
END
)
ORDER BY strSearchName
END
내가 서브 쿼리의 결과 집합 및 하위 쿼리 결과와 비교하는 strSearchTypeCode 사이에 데이터 형식이 일치하지 않습니다 확인했다.
이것이 작동하지 않아야하는 이유가 없습니다. 어떤 단서가 있다면 알려주세요.
당신이 속는 사람이 있더라도 IN 절에서는 중요하지 않습니다. –