我有一个名为idx的表,其中包含以下数据
id dex
-- ------------
1 Major 12354
2 CITY 541 DER
3 9987741221
4 7845741
5 789456 2121
如何选择只有数字的行,它应该只有 10 位数字
预期输出是
id dex
-- -----------
3 9987741221
5 789456 2121
我有一个名为idx的表,其中包含以下数据
id dex
-- ------------
1 Major 12354
2 CITY 541 DER
3 9987741221
4 7845741
5 789456 2121
如何选择只有数字的行,它应该只有 10 位数字
预期输出是
id dex
-- -----------
3 9987741221
5 789456 2121
您可以使用正则表达式来匹配您的条件^[0-9]{10,10}$
,我已经使用replace()
函数来删除字符之间的空格(dex in id 5)
select *
from idx
where replace(dex,' ','')~'^[0-9]{10,10}$' -- or '^[0-9]{10,}$'
^[0-9]{10,10}$
:
[0-9]
-获取数字
{10,10}$
-在您的情况下,所选字符串中的最大值和最小值都是10
OR
使用char_length()
select *
from idx
where dex~'^[0-9]'
and char_length(replace(dex,' ','')) = 10