SQL查询在postgresql数据库

时间:2017-10-05 18:45:26

标签: sql postgresql select

我有一个简单的SQL查询,帮助我找到它的值在字段文本中有一些英文字母。

这里是SQL:

select id,field1 
from mytable 
where mytable like '[A-Z]'

该查询在MS-ACCESS数据库中运行良好,但在QGIS和postgis查询上无法使用DB MANAGER,因为我认为Postgres无法识别字母表列表[A-Z]。

如果我使用它:

select id,field1 
from mytable 
where mytable like '%A%' 
   or mytable like '%B%'......

然后它有效,但我不喜欢这种方法。

在Postgres中:

select public.mytable.id,public.mytable.field1 
from mytable 
where public.mytable.mytable like '[A-Z]'

我尝试使用:

'*[A-Z]*'
'%[A-Z]%'

但是没有改变任何东西

2 个答案:

答案 0 :(得分:6)

您可以使用~运算符来评估正则表达式:

SELECT id, field1 FROM mytable WHERE mytable ~ '[A-Z]'

答案 1 :(得分:3)

在postgres中有一个用于匹配字符串到正则表达式的波浪号运算符

select * from some_table where some_column ~ '^[A-Z]$'

将选择some_column仅包含大写字母的记录。 ~*也用于不区分大小写的比较。