Desafio SQL: Consultando Nomes de Cidades que Começam com Vogais

26/11/2024

Neste post, vamos resolver um desafio interessante de SQL, onde precisamos listar os nomes das cidades que começam com vogais, evitando duplicatas no resultado. Este é um ótimo exercício para quem deseja praticar consultas SQL com filtros e manipulação de strings. Vamos ao desafio!

O Enunciado do Problema

Queremos consultar a tabela STATION para:

  1. Obter os nomes das cidades que começam com uma vogal (A, E, I, O, U).

  2. Garantir que o resultado não contenha duplicatas.

Estrutura da Tabela

Aqui está a estrutura da tabela STATION:

CampoTipo
IDNUMBER
CITYVARCHAR2(21)
STATEVARCHAR2(2)
LAT_NNUMBER
LONG_WNUMBER

A Solução

A consulta SQL para resolver este problema utiliza a função LEFT combinada com a cláusula WHERE e a palavra-chave DISTINCT para filtrar as cidades que começam com vogais e evitar duplicatas. Aqui está a solução:

  1. SELECT DISTINCT CITY  
  2. FROM STATION  
  3. WHERE LEFT(CITY, 1) IN ('A''E''I''O''U');  

Vamos detalhar cada parte da consulta:

1. Filtro de Nomes que Começam com Vogais

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

  • LEFT(CITY, 1): Esta função retorna o primeiro caractere de cada valor na coluna CITY.

  • IN ('A', 'E', 'I', 'O', 'U'): Verifica se o primeiro caractere está entre as vogais maiúsculas (A, E, I, O, U).

2. Removendo Duplicatas

  1. SELECT DISTINCT CITY  

O comando DISTINCT garante que não haja duplicatas no resultado.

Exemplo de Saída

Se a tabela STATION contém as seguintes entradas:

CITY
Albany
Edison
Orlando
Albany
Omaha
Urbana

A consulta retornará:

Albany
Edison
Orlando
Omaha
Urbana

Note que "Albany" aparece apenas uma vez, mesmo que esteja duplicado na tabela original.


Este desafio demonstra:

  • O uso da função LEFT para manipular strings em SQL.

  • A importância do DISTINCT para evitar redundâncias no resultado.

  • Como filtrar dados de forma eficiente utilizando a cláusula WHERE.


Este desafio foi retirado do site HackerRank