Вот лучший способ показать все таксоны, которые НЕ полностью состоят из цифр:
select taxid
from your_table
where translate(taxid, '.0123456789', '.') is not null
TRANSLATE
будет «переводить» (заменять) каждый период на входе на период на выходе. Поскольку другие символы во втором аргументе не имеют соответствующего символа в третьем аргументе, они будут просто удалены. Если результат этой операции , а не null
, то taxid
содержит хотя бы один символ, который не является цифрой. Если taxid
это все цифры, результат операции будет null
. Обратите внимание, что используемый здесь символ точки необходим из-за странности в определении Oracle TRANSLATE
: если какой-либо из его аргументов равен null
, то и его возвращаемое значение. Это не имеет большого смысла, но мы должны работать с функциями так, как их определил Oracle.