你能告诉我为什么我得到这个错误吗?什么样的表达式“=”?
我不认为使用任何类型的表达式“=”?
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 ='''? –