Użyj indeksu opartego na funkcjach:
create unique index only_one_yes on mytable
(case when col='YES' then 'YES' end);
Oracle indeksuje tylko klucze, które nie są całkowicie null, a wyrażenie CASE zapewnia, że wszystkie wartości „NO” zostaną zmienione na null, a więc nie będą indeksowane.