DB2 LIKE匹配模式

问题描述 投票:1回答:3

我的问题很简单。

在DB2数据库中,我有我的表

Table (Id integer, name varchar)

我想选择名称为'ac1%'或'ac2%'或'ac3%'的条目,以便哪些名称与正则表达式匹配

'^ac[123]*' 

是否有任何方法可以在没有写入的情况下使用此选择查

WHERE name LIKE 'ac1%' OR name LIKE 'ac2%' OR name LIKE 'ac2%'
sql regex db2 sql-like db2-400
3个回答
4
投票

可能最有效的方法是:

where name >= 'ac1' and
      name < 'ac4'

你也可以使用regular expressions

where regexp_like(name, '^ac[1-3]')

0
投票

根据您的Db2服务器平台(Z / OS,i系列,Linux / Unix / Windows)和Db2版本,您可以使用REGEXP_LIKE功能。这允许在SQL中使用正则表达式。

请参阅文档和示例here


0
投票

我认为下面的工作原因如果REGEXP_LIKE(col,'[0-9]{3}-[0-9]{3}-[0-9]{2}')包含任何0到9的值,col将始终返回true

  SELECT * FROM table1 
   WHERE  REGEXP_LIKE(name,'[1-3]')
© www.soinside.com 2019 - 2024. All rights reserved.