domingo, 26 de março de 2017

Função CONCAT() - Concatenar

Olá!

Na tabela de exemplo abaixo temos o armazenamento do nome e sobrenome da pessoa em colunas diferentes, veja:

PESSOA
CD_PESSOANOMESOBRENOMEIDADE
1FelipeBarbosa23
2AnaVieira20
3JoãoSantos19
4Alinenull21
5MairaDantas25
6Ananull19
7AlineFerreira22

Deste modo, se a aplicação necessitar apresentar o nome completo da pessoa em uma única linha, será realizado a concatenação dos valores dessas colunas pelo front-end (HTML; PHP; Java; etc), ou, previamente pela instrução SQL.

Para concatenar valores de colunas no SQL utilizamos a função CONCAT(), sintaxe:
  • CONCAT (expressão-1, expressão-2, ...)
Onde, "expressão" pode ser um valor fixo, ou uma coluna, ou o resultado de outra função.

Exemplos:
1) - Concatenar as colunas NOME e SOBRENOME

SQL:
SELECT CONCAT(NOME, SOBRENOME)
  FROM PESSOA;

Resultado:
  1. FelipeBarbosa
  2. AnaVieira
  3. JoãoSantos
  4. null
  5. MairaDantas
  6. null
  7. AlineFerreira

2) - Concatenar coluna com valor fixo

SQL:
SELECT CONCAT(NOME, " valorFixoTeste")
  FROM PESSOA
 WHERE CD_PESSOA = 1;

Resultado:
  1. Felipe valorFixoTeste

3) - Concatenar coluna com o resultado de outra função

SQL:
SELECT CONCAT(NOME, COALESCE(SOBRENOME, " Sobrenome não cadastrado"))
  FROM PESSOA;

Resultado:
  1. FelipeBarbosa
  2. AnaVieira
  3. JoãoSantos
  4. Aline Sobrenome não cadastrado
  5. MairaDantas
  6. Ana Sobrenome não cadastrado
  7. AlineFerreira

Note que com o resultado dos exemplos, podemos constatar algumas características da função CONCAT(), são:
  • Os valores das colunas são concatenados sem a adição de espaços. No primeiro exemplo o nome e sobrenome ficaram juntos.
  • Quando o valor de uma expressão é nulo, o resultado da concatenação é nulo.

Para adicionar o espaço entre o nome e sobrenome, veja a solução:
SQL:
SELECT CONCAT(NOME, " ", SOBRENOME)
  FROM PESSOA;

Consultar a relação de Termos e Abreviaturas acesse aqui.
Felipe Barbosa Ferreira
Até o próximo post!

sábado, 11 de março de 2017

Função COALESCE( )

Olá!

Ao executar uma instrução SQL que esteja manipulando colunas que possuem valores nulos, é possível realizar a troca do valor nulo por outro valor, isso em tempo de execução, ou seja, não é realizado o update do valor na base de dados.

Tabela de exemplo:

PESSOA
CD_PESSOANOMESOBRENOMEIDADE
1FelipeBarbosa23
2Ananull20
3JoãoSantos19
4Alinenull21
5Mairanull25
6AnaHavana19
7AlineFerreira22

Na tabela PESSOA há registros com valor null para a coluna SOBRENOME. Com a função COALESCE() em uma instrução Select podemos fazer com que seja retornado "Sobrenome não cadastrado" para os registros que possuírem valor null.

Sintaxe:

  • COALESCE (expressão-1, expressão-2, ...)

Caso a primeira expressão tenha valor nulo, será retornado o valor da próxima expressão que não seja nulo.


Exemplo:
Trocar o valor null pelo texto: "Sobrenome não cadastrado", para os registros que possuam nulo na coluna SOBRENOME.

SQL:

SELECT NOME
, COALESCE(SOBRENOME, "Sobrenome não cadastrado")
, IDADE
FROM PESSOA;


Resultado:
NOMESOBRENOMEIDADE
FelipeBarbosa23
AnaSobrenome não cadastrado20
JoãoSantos19
AlineSobrenome não cadastrado21
MairaSobrenome não cadastrado25
AnaHavana19
AlineFerreira22


Consultar a relação de Termos e Abreviaturas acesse aqui.
Felipe Barbosa Ferreira
Até o próximo post!