HackerRank - 天气观测站 8

问题描述 投票:0回答:8

希望一切都好。来自 HackerRank 的非常基本的 SQL 问题,但由于某种原因,编译器不会接受我的解决方案。这是我们所拥有的:

问题:

我的解决方案

SELECT DISTINCT CITY
FROM STATION 
WHERE CITY LIKE '[AEIOU]%[AEIOU]';

我已经检查了有关此同一问题的其他帖子,但所提供的解决方案似乎都不适用于 HackerRank。任何见解总是最受赞赏的。

sql
8个回答
3
投票

从 STATION 查询以元音(即 a、e、i、o 和 u)作为第一个和最后一个字符的 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%') AND (CITY LIKE '%a' OR CITY LIKE '%e' OR CITY LIKE '%i' OR CITY LIKE '%o' OR CITY LIKE '%u');

0
投票

我认为您忘记在 WHERE 条件下将 UPPER 函数与 CITY 列一起使用 -

SELECT DISTINCT CITY
FROM STATION 
WHERE REGEXP_LIKE(UPPER(CITY), '^[AEIOU]+(.)+[AEIOU]$');

0
投票

这对我有用

选择不同的(城市)

从车站出发

哪里

LEFT(CITY,1) IN ('A','E','I','O','U')

并且

RIGHT(CITY,1) IN ('a','e','i','o','u');


0
投票

我注意到带有

[]
的解决方案不适用于 HackerRancks 挑战中的某些数据库管理系统,例如 MySQL、Oracle 和 DB2。然而它确实可以在 MS SQL Server 上运行。

对我有用的 MS SQL Server 代码

SELECT DISTINCT CITY FROM STATION WHERE CITY LIKE '[aeiou]%' AND CITY LIKE '%[aeiou]'; 

我使用

AND
运算符来分隔我的条件。

对于其余的(DB2、MySQL 和 Oracle),这个(长)解决方案对我有用

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%')
AND (CITY LIKE '%a' OR CITY LIKE '%e' OR CITY LIKE '%i' OR CITY LIKE '%o' OR CITY LIKE '%u');

我再次使用

AND
来分隔我的两个条件。


0
投票

这肯定适用于mysql

select distinct city from station where city regexp '^[aeiou]' and city regexp '[aeiou]$';


0
投票

在 MySql Server 上这对我有用。

Select Distinct CITY From STATION Where CITY Like '[aeiou] % [aeiou]';

0
投票

使用了此查询。

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

REGEXP 运算符用于将 CITY 列与正则表达式模式 '^[aeiouAEIOU].*[aeiouAEIOU]$' 进行匹配。这是该模式的解释:

  • ^
    表示字符串的开头。
  • [aeiouAEIOU]
    匹配属于指定元音之一的任何单个字符(小写和大写)。
  • *
    匹配零个或多个任意字符。
  • [aeiouAEIOU]$
    匹配字符串末尾指定元音(小写和大写)之一的任何单个字符。
  • $
    表示字符串的结尾。

0
投票

从车站中选择不同的城市,其中城市像'[aeiou]%'和right(city,1) in ('a', 'e', 'i', 'o', 'u')。

我的解决方案对我来说最简单,只需使用 和 关键字进行操作即可。

我的解决方案基于 ms sql server,但您可以将语法更改为您正在使用的语法。

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.