Использовать сопоставление с образцом в выражении where
'^-?([0-9]+\.?[0-9]*|\.[0-9]+)$'
- выбирает все типы значений (положительные, отрицательные и плавающие значения)
select *
from (
values ('100T')
,('456.5')
,('-65')
,('9879t')
,('454')
) t(a)
where a ~ '^-?([0-9]+\.?[0-9]*|\.[0-9]+)$'
demo
Ваш запрос будет
select psdi
from your_table
where psdi ~ '^-?([0-9]+\.?[0-9]*|\.[0-9]+)$'