Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Nome completo

Olá! Tudo bem? Estava lendo o "para saber mais" e tem uma parte que fala sobre juntar as colunas 'Nome' e 'Sobrenome, e usar o AS para substituir por Nome_Completo. Porém, mostra que ficaria assim: SELECT Nome AS NomeCompleto FROM Clientes;
Mas se colocasse "SELECT Nome, Sobrenome AS NomeCompleto FROM Clientes;" não seria o correto? Pois, iria juntar o nome com o sobrenome.

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
2 respostas
solução!

Olá, João! Tudo bem?

Sua pergunta é excelente e mostra que você está pensando criticamente sobre o código, o que é a habilidade mais importante para aprender a programar e consultar dados. Você está absolutamente certo em sua análise: os dois exemplos que você mencionou não fazem o que você quer.

Vamos esclarecer o porquê e como chegar na solução correta.

O Papel da VÍRGULA (,) e do AS
Você acertou em cheio ao desconfiar. O motivo pelo qual sua sugestão SELECT Nome, Sobrenome AS NomeCompleto FROM Clientes; não funciona para juntar os nomes é por causa de como o SQL interpreta a vírgula e o AS.

  1. A vírgula (,) em uma instrução SELECT serve para separar colunas distintas. Quando você escreve SELECT Nome, Sobrenome, está pedindo ao banco de dados: "me traga a coluna Nome E TAMBÉM a coluna Sobrenome".
  2. A cláusula AS aplica um apelido (alias) apenas à expressão que vem imediatamente antes dela. Então, no seu exemplo, o AS NomeCompleto se aplicaria somente à coluna Sobrenome. O resultado seria uma tabela com duas colunas: uma chamada Nome e outra chamada NomeCompleto (contendo os sobrenomes).

A Solução: Operador de Concatenação ||

Para juntar (ou concatenar) o conteúdo de duas colunas de texto em uma só, você precisa usar um operador específico.

No SQLite (que é o banco de dados do curso, e também em outros como PostgreSQL e Oracle), o operador para juntar textos é o || (duas barras verticais, também chamadas de "pipe").

A sintaxe correta para o que você quer fazer seria:

SELECT Nome || ' ' || Sobrenome AS NomeCompleto
FROM Clientes;
  • Analisando a Solução Correta:
  • Nome: Pega o conteúdo da coluna Nome (ex: "Maria").
  • ||: O operador de concatenação. Ele vai "grudar" o que vem antes com o que vem depois.
  • ' ': Um texto literal contendo um espaço em branco. Colocamos isso entre as colunas para que o resultado não seja "MariaSilva", mas sim "Maria Silva".
  • ||: O operador novamente, para juntar o espaço com o sobrenome.
  • Sobrenome: Pega o conteúdo da coluna Sobrenome (ex: "Silva").
  • AS NomeCompleto: Agora sim! Depois de criar essa expressão única que junta tudo (Nome || ' ' || Sobrenome), nós damos um nome para essa nova "coluna virtual" que acabamos de criar.

Resumindo: a vírgula separa as colunas, e o || junta o conteúdo delas. Você primeiro junta tudo o que precisa com || e só depois dá um nome ao resultado final com AS.

Sua dúvida foi muito perspicaz e ajudou a esclarecer um ponto fundamental da linguagem SQL. Continue com esse ótimo trabalho de análise!

Caso essa resposta tenha solucionado sua dúvida, marque a resposta como solução!! ✅

Ahh entendi, Tiago! Muito obrigado por tirar minha dúvida!