如何编写SQL查询以匹配以元音结尾的城市名称?

时间:2018-03-08 18:25:51

标签: mysql syntax

为什么不起作用?

从STATION查询以元音(a,e,i,o,u)结尾的CITY名称列表。我们的结果不能包含重复项。

SELECT DISTINCT CITY FROM STATION 
WHERE CITY LIKE '%A' OR CITY LIKE '%E' OR LIKE '%I' LIKE '%O' OR LIKE '%U' 
ORDER BY CITY;

什么是正确的查询?

13 个答案:

答案 0 :(得分:1)

尝试使用MySQL解决方案:

select distinct CITY from STATION where substr(CITY, -1, 1) in ('a','e','i','o','u');

这里“ distinct”将解决重复值的问题,“ substring”函数从string中提取子字符串。子字符串还包含开始和长度。 有关更多详细信息,请访问链接:-https://www.w3schools.com/sql/func_mysql_substr.asp

答案 1 :(得分:1)

我是这样解决的:

SELECT DISTINCT CITY FROM STATION WHERE REGEXP_LIKE(CITY,'[aeiou]$','i');

在这种情况下,末尾的“i”称为“标志”,这意味着元音可以是大写或小写。

答案 2 :(得分:0)

您查询的语法错误,对于每个“或”,您需要将城市设置为而不是或。另外,请记住在大多数dbms中,它区分大小写。如果你想忽略大写和小写,那就这样做吧。我使用的是mysql语法,不同的dbms具有不同的lcase函数

.value

答案 3 :(得分:0)

我以这种方式解决了这个问题。我认为与其一一检查最后一个字符,不如检查一下是否要在操作符中使用。

select distinct city
from station
where substring(city,len(city),1) in ('a','e','u','o','i')
order by city;

答案 4 :(得分:0)

您也可以尝试-

SELECT DISTINCT CITY FROM STATION WHERE CITY REGEXP '[aeiouAEIOU]$';

答案 5 :(得分:0)

在MsSql中 尝试这个: 从('a','e','i','o','u')中的位置(CITY,1)的位置选择不同的城市;

答案 6 :(得分:0)

在MS SQL服务器中尝试

select distinct(city) from station where city like '%[a,e,i,o,u]' order by city;

答案 7 :(得分:0)

select CITY
from STATION
where right(lower(CITY),1) in ('a','e','i','o','u')
group by CITY;

答案 8 :(得分:0)

在 MySQL 中使用正则表达式是这样的:

SELECT DISTINCT(CITY) FROM STATION WHERE REGEXP_LIKE(CITY, '[aiueo]$', 'i') ORDER BY CITY;

答案 9 :(得分:0)

你可以使用子串来解决这个问题

SELECT DISTINCT CITY FROM STATION WHERE SUBSTRING(CITY,-1,1) NOT IN ('a','e','i','o','u')

答案 10 :(得分:0)

对于 Mysql,这对我有用 -

select DISTINCT(CITY) from STATION 
where CITY REGEXP '[aeiou]$';

答案 11 :(得分:0)

使用 MySQL;

select distinct CITY 
from STATION 
where right(city,1) in ('a', 'e', 'i', 'o', 'u');

答案 12 :(得分:0)

Select distinct city 
from Station 
where lower(SUBSTR(city,length(city),1))in ('a','e','i','o','u');