从 STATION
表中查询不以元音开头且不以元音结尾的 CITY
名称列表。您的结果不能包含重复项。
https://www.hackerrank.com/challenges/weather-observation-station-12/problem
使用 LIKE
运算符,我提出了 3 个查询,如下所示:
工作中
SELECT DISTINCT CITY
FROM STATION
WHERE CITY NOT LIKE '[aeiou]%'
AND CITY NOT LIKE '%[aeiou]'
工作中
SELECT DISTINCT CITY
FROM STATION
WHERE CITY LIKE '[^aeiou]%[^aeiou]';
不工作:
SELECT DISTINCT CITY
FROM STATION
WHERE CITY NOT LIKE '[aeiou]%[aeiou]';
有人可以告诉我为什么第三个查询不起作用吗?
最佳答案
WHERE CITY NOT LIKE '[aeiou]%'
AND CITY NOT LIKE '%[aeiou]'
此查询返回不以是元音的字符开头并且不以其结尾的行。
这基本上就是所问的问题。
WHERE CITY LIKE '[^aeiou]%[^aeiou]';
此查询返回的行做:以不是元音的字符开头,并且以不是元音。
这并不完全相同,因为它需要至少两个字符,而第一个版本只需要一个字符。
WHERE CITY NOT LIKE '[aeiou]%[aeiou]';
此查询返回不的行:以是元音的字符开头,并且以是元音的字符结尾.
这与之前的查询完全不同。另一种表达方式是:do以非元音开头或以非元音结尾的行。
关于sql - SQL Server 中的 LIKE 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73618470/