You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle环境下查询首尾为元音的城市名SQL语句报错求助

解决Oracle中查询首尾均为元音字母的城市名称问题

你的查询返回错误结果,大概率是因为Oracle的REGEXP_LIKE默认区分大小写,而城市名称可能包含大写的元音字母(比如"Atlanta"或者"Orlando"),导致匹配失败。下面提供两种可行的解决方法:

方法一:修改正则表达式,忽略大小写

在REGEXP_LIKE中添加第三个参数'i'启用大小写不敏感匹配,同时简化正则写法:

SELECT DISTINCT city
FROM station
WHERE REGEXP_LIKE(city, '^[aeiou].*[aeiou]$', 'i');

这里^[aeiou]匹配以任意元音开头,.*匹配中间任意字符,[aeiou]$匹配以任意元音结尾,'i'参数让匹配不区分大小写。

方法二:不用正则,用字符串函数实现

如果不想依赖正则,也可以通过LOWER()配合SUBSTR()判断首尾字符:

SELECT DISTINCT city
FROM station
WHERE LOWER(SUBSTR(city, 1, 1)) IN ('a', 'e', 'i', 'o', 'u')
  AND LOWER(SUBSTR(city, -1, 1)) IN ('a', 'e', 'i', 'o', 'u');

SUBSTR(city,1,1)提取第一个字符,SUBSTR(city,-1,1)提取最后一个字符,转成小写后判断是否属于元音列表,同样能实现大小写不敏感的匹配。

内容的提问来源于stack exchange,提问作者kiric8494

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 17:27:22