CASE WHENステートメントを使用してみましたが、何かを見逃したか、これが正しい方法ではないようです。@APASSパラメータは、指定された試験に合格した人または不合格になった人を返すクエリを作成します。
SELECT ID, Name,ZipCode,Mobile
FROM tblStudent
WHERE (Sex = @Sex) AND (ID IN
(SELECT StID
FROM tblTest
WHERE (TestID = @TestID) AND
CASE WHEN @APass = TRUE THEN (Score IN (27, 28, 29, 30))
ELSE (Score NOT IN (27, 28, 29, 30))
END
GROUP BY StID, TestID
HAVING (COUNT(*) = @Times)))