sql—如何在oracle中使用like运算符获取值的范围?

ssm49v7z  于 2021-07-26  发布在  Java
关注(0)|答案(3)|浏览(306)

我的数据库我想选择有a15-a19使用like运算符但不能得到所需结果的数据。我做的代码 SELECT * FROM MASTER_RULE WHERE VALUE BETWEEN LIKE 'A15%' AND 'A19%' 还尝试了正则表达式作为 SELECT * FROM MASTER_RULE WHERE REGEXP_LIKE(value, 'A[1-9]') . 但regexp给出了所有未指定范围15-19的记录。
如何解决这个问题?

nfeuvbwi

nfeuvbwi1#

您的第一个查询不正常,它有一个您不需要的额外关键字。
下面是类似regexp\u的解决方案:

SELECT * FROM MASTER_RULE WHERE REGEXP_LIKE(value, '^A[1][5-9]')

这是一个演示
更新:
以下是“中间解决方案”:

SELECT * 
FROM MASTER_RULE 
WHERE substr(value, 2,length(value)-1) between 15 AND 19
snvhrwxg

snvhrwxg2#

您可以使用常规字符串比较:

where value >= 'A15' and
      value < 'A20'

这不仅简单,而且代码还可以利用 value .

mu0hgdu0

mu0hgdu03#

正如你在评论中提到的,你的数据就像a15,a16,a17。你也可以用简单的in条款来达到你的要求。

SELECT * FROM MASTER_RULE WHERE VALUE in ('A15','A16','A17','A18,'A19');

相关问题