Вы хотите что-то подобное:
select *
from . . . cross apply
( values (case when . . .
then . . .
else . . .
end)
) tt (test)
where tt.test = 'X'
База доверенных сертификатов должна только содержать корневую АВАРИЮ, не промежуточные звенья.
Хранилище идентификационных данных должно содержать закрытые ключи, каждый связанный с его цепочкой сертификата, за исключением корня.
Многие, много приложений в дикой природе неправильно конфигурируются, и при попытке идентифицировать себя (скажите, сервер, аутентифицирующий себя с SSL), они только отправляют свой собственный сертификат и пропускают промежуточные звенья. Существуют меньше, которые по ошибке отправляют корень как часть цепочки, но это менее вредно. Большая часть сертификата соединяет разработчиков каналом, просто проигнорирует его и найдет путь к корню из их доверяемой базы ключей.
Гипотезы в исходном вопросе являются правильными на цели.