'NEGATIVE'
- это строка, а не число, поэтому ORA-01722 при попытке превратить ее в число. Таким образом, вы должны справиться с этими событиями. Что-то вроде:
select count(
case when result = 'NEGATIVE' then 1
when result != 'PROBLEM' and to_number(result) < 1 then 1
else null
end) as tot_negatives
from your_table;
Строго говоря, 0,15 не является отрицательным, потому что оно больше нуля, но я реализовал ваше определение.
Обратите внимание, что у вас нетлюбые другие не числовые строки в вашем столбце, кроме «ОТРИЦАТЕЛЬНЫЙ» и «ПРОБЛЕМА». Если есть другие, то вам тоже нужно с ними справиться.