Usa un indice basato su funzioni:
create unique index only_one_yes on mytable
(case when col='YES' then 'YES' end);
Oracle indicizza solo le chiavi che non sono completamente nulle e l'espressione CASE qui assicura che tutti i valori "NO" vengano modificati in null e quindi non indicizzati.