Database
 sql >> Base de Dados >  >> RDS >> Database

Como concatenar strings no SQL

Problema:


Você deseja unir strings de duas colunas de uma tabela em uma.

Exemplo:


Nosso banco de dados tem uma tabela chamada student com dados nas seguintes colunas:id , first_name e last_name .
id first_name last_name
1 Lora Smith
2 Emil Marrom
3 Alex Jackson
4 Martin Davis

Vamos anexar o primeiro nome ao sobrenome do aluno em uma string. Use um espaço entre cada nome.

Solução:

SELECT first_name || ‘ ‘ || last_name AS full_name
FROM student;

Esta consulta retorna registros em uma coluna chamada full_name :
full_name
Lora Smith
Emil Brown
Alex Jackson
Martin Davis

Discussão:


Para anexar uma string a outra e retornar um resultado, use o || operador. Isso adiciona duas strings da esquerda e da direita e retorna um resultado. Se você usar o nome da coluna, não a coloque entre aspas. No entanto, ao usar um valor de string como um espaço ou texto, coloque-o entre aspas.

Em nosso exemplo, adicionamos um espaço a first_name e então a coluna last_name . Esta nova coluna é chamada full_name .

Você também pode usar uma função especial:CONCAT. É preciso uma lista de strings ou nomes de colunas para unir como argumentos:
SELECT CONCAT(first_name, ‘ ‘, last_name) AS full_name
FROM student;

Os resultados são idênticos.

No entanto, a função CONCAT() é melhor para recuperar dados de uma coluna com valores NULL. Por quê? Porque, quando um NULL é incluído nos valores a serem unidos, o operador retorna NULL como resultado. No caso de CONCAT(), NULL não será exibido.

Veja o resultado do || operador se Emill não tiver um sobrenome registrado:
SELECT first_name || ‘ ‘ || last_name AS full_name
FROM student;
full_name
Lora Smith
NULO
Alex Jackson
Martin Davis

Veja a função CONCAT para os mesmos dados:
SELECT CONCAT(first_name, ‘ ‘, last_name) AS full_name
FROM student;
full_name
Lora Smith
Emil
Alex Jackson
Martin Davis