匹配在用户输入的两个字符之间开始的名称

时间:2017-08-01 13:11:05

标签: plsql oracle-sqldeveloper plsqldeveloper

我需要根据输入两个字母的用户编写一个匹配的查询,然后匹配customer表中以两者之间的任何字母开头的任何名称,并将它们放入游标中。我曾尝试使用REGEXP_LIKE,但无法使模式匹配,而且我的想法已经不多了

2 个答案:

答案 0 :(得分:1)

如果它们都以大写字母开头,那么只需使用BETWEEN

即可
SELECT *
FROM table1
WHERE SUBSTR(UPPER("name"),1,1) BETWEEN 'C' AND 'G'

name
Alan
Ben
Chris
Dave
Eddy
Fred
Gregg
Henry

输出

name
Chris
Dave
Eddy
Fred
Gregg

SQL小提琴:http://sqlfiddle.com/#!4/7cf66/6/0

答案 1 :(得分:1)

这是您最初寻找的REGEXP_LIKE解决方案。匹配不区分大小写,以c-g开头。

select name
from table1
where regexp_like(name, '^[C-G].*', 'i');