왜이 오류가 발생하는지 알려주실 수 있습니까?"="어떤 종류의 표현식입니까?
"="어떤 종류의 표현을 사용한다고 생각하지 않습니까?
SELECT *
FROM
(SELECT
ROW_NUMBER() OVER(ORDER BY
CASE WHEN @SortType = '1' THEN mt.Ad END ASC,
CASE WHEN @SortType = '2' THEN mt.Ad END DESC,
CASE WHEN @SortType = '3' THEN mt.Fiyat END ASC,
CASE WHEN @SortType = '4' THEN mt.Fiyat END DESC) AS RowNr, *
FROM @MainTable mt
WHERE mt.Fiyat > @MinPrice AND mt.Fiyat < @MaxPrice
AND mt.MarkaId IN (CASE WHEN @BrandFilter != ''
THEN (SELECT bf.Data FROM dbo.Split(@BrandFilter, ',') bf)
ELSE (mt.MarkaId)
END)
) Result
WHERE
RowNr > ((@PageNr-1) * 10) AND RowNr <= ((@PageNr) * 10)
SQL Server에이 오류가 표시됩니다.
하위 쿼리가 두 개 이상의 값을 반환했습니다. 하위 쿼리가 =,! =, <, < =,>,> = 또는 하위 쿼리가 식으로 사용될 때 하위 쿼리가 수행되는 경우에는 허용되지 않습니다.
내 분할 기능은 여러 테이블을 반환하지만 나는 IN
를 작성하지 =
감사
내가 CASE는 테이블 값을 반환 할 수 있다고 생각하지 않습니다, 스칼라 –
당신은 말로 설명 할 수 * 정확히 * 당신이 때 발생하는 것이 '@BrandFilter = '''? –