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 |