假设我的列名是“psdi”,我想只打印数字行
psdi
100
10k
103f
456
9o2u
125
931
必需的O / P:
psdi
100
456
125
答案 0 :(得分:0)
这是两个简单的方法。一个人寻找信件:
select t.*
from t
where not psdi ~ '[a-zA-Z]'
或只是数字:
select t.*
from t
where not psdi ~ '^[0-9]+$'
答案 1 :(得分:0)
在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]+)$'
您的查询将是
select psdi
from your_table
where psdi ~ '^-?([0-9]+\.?[0-9]*|\.[0-9]+)$'