【发布时间】:2016-02-01 14:55:04
【问题描述】:
select distinct first_name
from EMPLOYEES
where regexp_like(first_name,'^[^AEIOU]*[^aeiou]$');
select distinct first_name
from EMPLOYEES
where regexp_like(first_name,'^[^AEIOU].*[^aeiou]$');
我正在尝试查找不以元音开头和结尾的员工名字。我提出了上述问题。现在我有两个问题:
上述语句是否返回有效输出(不以元音开头)。
上述语句是否总是返回相同的结果(我尝试时得到相同的结果)。
但是当我尝试以下两个查询时,它们给出了不同的输出
select distinct first_name
from EMPLOYEES
where regexp_like(first_name,'^[AEIOU]*[aeiou]$');
select distinct first_name
from EMPLOYEES
where regexp_like(first_name,'^[AEIOU].*[aeiou]$');
【问题讨论】:
-
请澄清您的第二个问题,因为您自相矛盾。你得到相同的结果,但你得到不同的结果?
-
以上问题结果相同,以下问题结果不同
-
这就是我感到困惑的地方——这两组查询完全一样,我可以说。如果有细微差别,请突出显示。
-
也就是说我会注意到
^[^AEIOU]*[^aeiou]$和^[AEIOU].*[aeiou]$会给出不同的结果。区别在于中间的*运算符适用于什么。 -
如果您的意思是前两个查询“相对于彼此”给出不同的答案,请发表评论。
标签: sql oracle11g regexp-like