0
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]$');  

我正在尝试查找不以元音开头和结尾的员工名字。我提出了上述问题。现在我有两个问题:

  1. 上述语句是否返回有效输出(不以元音开头)。

  2. 上述语句是否总是返回相同的结果(我尝试时得到相同的结果)。

但是当我尝试以下两个查询时,它们给出了不同的输出

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]$');         
4

1 回答 1

0

1)前两个查询没有给你有效的输出。它们匹配以小写元音开头或以大写元音结尾的名称。而且他们并不总是给出相同的结果:

  • 马科斯是第一和第二的比赛
  • MARCOS 是第二个而不是第一个的比赛
  • 艾伦是两者的比赛

2)由于类似的原因,第二对呈现不同的输出。

你可以自己试试:正则表达式101

于 2016-02-01T15:16:00.397 回答