0

我的存储过程收到“@CategoryIDs varchar”

@CategoryIDs 包含一个或多个用“|”分隔的 ID,

我的存储过程如下所示:

Select R.ID,,CategoryID, (sum(C.Rating)/Count(R.ID)) as "Rating"
    from Table1  R
    left outer join Table2 C
    ON R.ID = C.ID
    GROUP BY R.ID
    having R.CategoryID = @CatergoryID
    RETURN
4

1 回答 1

2

您应该可以使用CHARINDEX. 但是,这样效率很低,最好有@CategoryID一个表变量。

SET @CatergoryID = '|'+@CatergoryID+'|';
SELECT R.ID, R.CategoryID, (SUM(C.Rating)/COUNT(R.ID)) AS Rating
    FROM Table1 AS R
    LEFT OUTER JOIN Table2 AS C
    ON R.ID = C.ID
    WHERE CHARINDEX('|'+R.CategoryID+'|', @CatergoryID)>0 
    GROUP BY R.ID, R.CategoryID
于 2012-04-22T08:42:01.570 回答