Я интерпретирую вопрос следующим образом: показывать имена, начинающиеся с Y, если имена, начинающиеся с X, не найдены.Это решение будет быстрым, поскольку оно сократит существующее с момента обнаружения 1 записи
if exists(select * from table where name like 'X%')
begin
select * from table where name like 'X%'
end
else
begin
select * from table where name like 'Y%'
end
В идеале столбец имени должен быть проиндексирован, чтобы это работало хорошо.