我的问题很简单。
在DB2数据库中,我有我的表
Table (Id integer, name varchar)
我要选择名称类似于“ ac1%”或“ ac2%”或“ ac3%”的条目,以便其名称与正则表达式匹配
'^ac[123]*'
有没有什么方法可以使选择查询不写:
WHERE name LIKE 'ac1%' OR name LIKE 'ac2%' OR name LIKE 'ac2%'
答案 0 :(得分:4)
可能最有效的方法是:
where name >= 'ac1' and
name < 'ac4'
您也可以使用regular expressions:
where regexp_like(name, '^ac[1-3]')
答案 1 :(得分:0)
取决于您的Db2服务器平台(Z / OS,i系列,Linux / Unix / Windows)和Db2版本,您可以使用 REGEXP_LIKE 函数。这样就可以使用SQL中的正则表达式。
请参阅文档和示例here。
答案 2 :(得分: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]')