在SQL中,我想显示以元音结尾的所有城市的名称

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在SQL中,我想显示以元音结尾的所有城市的名称相关的知识,希望对你有一定的参考价值。

我写了以下查询

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

这有什么问题?

答案

如果你想让它用低/高字母,你可以使用UPPER(CITY),否则它都很好。

另一答案

您可以将此代码用于您的目的!

select distinct CITY from STATION 
where ( CITY like '%a' or 
        CITY like '%e' or 
        CITY like '%i' or 
        CITY like '%o' or 
        CITY like '%u')
另一答案

使用正则表达式

SELECT DISTINCT(name) FROM city WHERE LOWER(name) RLIKE '.*[aeiou]$'
另一答案

我认为这

SELECT DISTINCT CITY
FROM STATION
WHERE CITY LIKE '%A' 
   OR CITY LIKE '%E' 
   OR CITY LIKE '%I' 
   OR CITY LIKE '%O' 
   OR CITY LIKE '%U';
另一答案

最简单的是使用正则表达式:

SELECT 
  CITY 
FROM 
  STATION 
WHERE 
  CITY RLIKE "[aeiouAEIOU]$";
另一答案
SELECT
   Distinct(CITY)
FROM
   STATION
WHERE
   UPPER(SUBSTR(CITY,1,1)) IN ('A','E','I','O','U');

它在mysql中运行。

另一答案

在SQL Server中,这可能是答案的其他版本

select distinct city 
from station 
where right(city,1) in ('a','e','i','o','u')
另一答案

对于Oracle

select DISTINCT(CITY) from STATION where upper(SUBSTR(CITY,-1,1)) IN ('A','I','O','E','U');
另一答案

如果您使用MySQL,请尝试以下解决方案:

SELECT UNIQUE CITY 
FROM STATION 
WHERE (CITY REGEXP '%A$' OR CITY REGEXP '%E$' OR CITY REGEXP '%I$' OR CITY REGEXP '%O$' OR CITY REGEXP '%U$') 
ORDER BY CITY;
另一答案

我想你可以像这样使用REGEXP_LIKE

SELECT UNIQUE CITY 
FROM STATION 
WHERE REGEXP_LIKE(CITY, '[AaEeIiOoUu]$') 
ORDER BY CITY;
另一答案

这对我有用(Oracle 11g):

select distinct
    s.city
from
    station s
where 
    upper(substr(s.city,-1,1)) in ('A','E','I','O','U');
另一答案

在我看来,这样做会更容易:

SELECT DISTINCT CITY 
FROM STATION  
WHERE CITY LIKE '%[AaEeIiOoUu]'*
另一答案

使用upper函数。此函数将帮助您大写文本字母。

SELECT DISTINCT CITY 
FROM   STATION 
WHERE  UPPER(CITY) LIKE '%A' 
   OR  UPPER(CITY) LIKE '%E' 
   OR  UPPER(CITY) LIKE '%I' 
   OR  UPPER(CITY) LIKE '%O' 
   OR  UPPER(CITY) LIKE '%U';

另一答案

我们可以为regexp提供另一个参数来处理区分大小写:

  • i - 不区分大小写,
  • c - 区分大小写

例如:

select distinct city 
from station 
where regexp_like(city,'[aeiou]$','i')
order by city
另一答案

以下解决方案适用于Oracle DB:

select distinct(city) 
from station 
where UPPER(substr(city,1,1)) 
in ('A','E','I','O','U');

如果您不使用UPPER,那么城市名称以小写字母开头的测试用例将失败。

另一答案
SELECT UNIQUE CITY FROM STATION 
WHERE 
    (CITY LIKE 'A%' OR 
     CITY LIKE 'E%' OR
     CITY LIKE 'I%' OR 
     CITY LIKE 'O%' OR 
     CITY LIKE 'U%');

%外卡字符应该在字母表后面

另一答案

在MySql中

    select distinct city 
    from Station 
    where ( city regexp '.[aeiou]$' );

以上是关于在SQL中,我想显示以元音结尾的所有城市的名称的主要内容,如果未能解决你的问题,请参考以下文章

获取城市名称不以元音开头或不以元音结尾

用于检查名称是不是以元音开头和结尾的 SQL 查询

不以元音开头或结尾的单词的正则表达式?

SQL 查询以查找以 \\FileName 结尾的名称

Access 2013:在文本框中显示查询结果

sql 在SQL SERVER中检索以相同字母开头和结尾的名称