你能告訴我爲什麼我得到這個錯誤嗎?什麼樣的表達式「=」?
我不認爲使用任何類型的表達式「=」?
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出現此錯誤;
子查詢返回的值超過1。當子查詢遵循=,!=,<,< =,>,> =或當子查詢用作表達式時,這是不允許的。
我的分裂函數返回多表,但我寫的IN
沒有=
感謝
我不認爲情況下,可以返回表值,僅標量 –
你能不能用言語形容* *正是你想要的時候發生什麼'@BrandFilter ='''? –