Verwenden Sie einen funktionsbasierten Index:
create unique index only_one_yes on mytable
(case when col='YES' then 'YES' end);
Oracle indiziert nur Schlüssel, die nicht vollständig null sind, und der CASE-Ausdruck stellt hier sicher, dass alle 'NO'-Werte in Nullen geändert und somit nicht indiziert werden.