繁体   English   中英

如何在Oracle SQL中使用字符列表通配符?

[英]How to use charlist wildcard in Oracle SQL?

我正在尝试查找姓氏的第一个字母在“ s”和“ z”之间的记录。 这就是我试图做到的方式:

WHERE UPPER(last_name) LIKE '[S-Z]%'

我知道有人会问,所以是的,数据库中有记录,姓氏以这些字母之一开头。

提前致谢。

您不能将正则表达式语法与正常的like ,但可以改用regexp_like

WHERE REGEXP_LIKE(UPPER(last_name), '^[S-Z]')

或更强力的方法:

WHERE UPPER(SUBSTR(last_name, 1, 1)) BETWEEN 'S' AND 'Z'

或更明确地:

WHERE UPPER(SUBSTR(last_name, 1, 1)) IN ('S','T','U','V','W','X','Y','Z')

我们可以使用像这样的REGEXP函数,它也会提高性能-

select * from your_table where REGEXP_LIKE(upper(last_name),'^[S-Z](*)');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM