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

SQL Server中LIKE运算符查询疑问:为何第三个SQL语句不生效?

问题分析:为何第三条SQL语句无法正确筛选目标城市?

需求:从STATION表中查询所有不以元音开头且不以元音结尾的CITY名称,结果需去重。

三条SQL语句对比

  • 有效语句1:
SELECT DISTINCT CITY 
FROM STATION 
WHERE CITY NOT LIKE '[aeiou]%' 
  AND CITY NOT LIKE '%[aeiou]'

这条语句逻辑直接:同时排除「以元音开头」和「以元音结尾」的城市,完全匹配需求,能得到正确结果。

  • 有效语句2:
SELECT DISTINCT CITY 
FROM STATION 
WHERE CITY LIKE '[^aeiou]%[^aeiou]';

这里[^aeiou]表示匹配非元音字符,整个条件是筛选「开头是非元音、结尾也是非元音」的城市,和需求完全契合,结果正确。

  • 无效语句:
SELECT DISTINCT CITY 
FROM STATION 
WHERE CITY NOT LIKE '[aeiou]%[aeiou]';

这条语句的逻辑是排除那些「开头是元音且结尾也是元音」的城市,但这和我们要的「不以元音开头且不以元音结尾」不是一个概念。它会错误保留以下不符合要求的城市:

  • 以元音开头但结尾非元音的(比如"Atlanta")
  • 不以元音开头但结尾是元音的(比如"Seattle")
    这些城市都不符合需求,却会被这条语句包含在结果里,所以无法得到正确数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 22:05:26