为什么不起作用?
从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;
什么是正确的查询?
答案 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');