Utilisez un index basé sur les fonctions :
create unique index only_one_yes on mytable
(case when col='YES' then 'YES' end);
Oracle n'indexe que les clés qui ne sont pas complètement nulles, et l'expression CASE ici garantit que toutes les valeurs 'NO' sont changées en nulles et donc non indexées.