Вот мой простой запрос. Если я запрошу запись, которая не существует, я ничего не верну. Я предпочел бы, чтобы в этом сценарии был возвращен false (0). Поиск упрощенного метода для учета отсутствия записей.
SELECT CASE
WHEN S.Id IS NOT NULL AND S.Status = 1 AND (S.WebUserId = @WebUserId OR S.AllowUploads = 1) THEN 1
ELSE 0
END AS [Value]
FROM Sites S
WHERE S.Id = @SiteId