Observe a tabela abaixo:
| PESSOA | |||
| CD_PESSOA | NOME | SOBRENOME | IDADE |
| 1 | Felipe | Barbosa | 23 |
| 2 | Ana | null | null |
| 3 | João | Santos | null |
| 4 | Aline | null | 21 |
| 5 | Maira | 25 | |
| 6 | Ana | null | |
| 7 | Aline | Ferreira | 22 |
Veja que nas colunas SOBRENOME e IDADE há valores nulos, e também está presente alguns registros com o sobrenome vazio (lembre-se vazio é diferente de null).
Com a execução do SQL:
SELECT NOME
, SOBRENOME
, IDADE
FROM PESSOA;
Conseguimos facilmente retornar os valores contidos na tabela PESSOA. Entretanto, o usuário irá visualizar os seguintes dados:
Resultado:
| NOME | SOBRENOME | IDADE |
| Felipe | Barbosa | 23 |
| Ana | null | null |
| João | Santos | null |
| Aline | null | 21 |
| Maira | 25 | |
| Ana | null | |
| Aline | Ferreira | 22 |
Note que sem realizar o tratamento dos dados, estamos cometendo um ERRO ao apresentar null para o usuário.
- Solução. Realizar tratamento de nulidade e valores vazios.
No banco de dados (DB) Oracle temos a função NVL() para realizar o tratamento do resultado nulo ou vazio de uma expressão.
Sintaxe:
NVL(expressão, 'texto para substituição')
Ou seja, o primeiro argumento da função é uma expressão que pode ser uma coluna, o resultado de outra função, etc. Já o segundo argumento é uma string (texto qualquer) que você queira que seja apresentado quando o primeiro argumento seja nulo ou vazio.
Exemplos:
1) - NVL('Felipe', 'Ana')
Resultado: Felipe
2) - NVL('', 'Ana')
Resultado: Ana
3) - NVL(null, 'Ana')
Resultado: Ana
4) - Agora vamos usar a função no nosso primeiro SQL:
SELECT NOME
, NVL(SOBRENOME, 'Não cadastrado')
, NVL(IDADE, 'Não cadastrado')
FROM PESSOA;
Resultado:
| NOME | SOBRENOME | IDADE |
| Felipe | Barbosa | 23 |
| Ana | Não cadastrado | Não cadastrado |
| João | Santos | Não cadastrado |
| Aline | Não cadastrado | 21 |
| Maira | Não cadastrado | 25 |
| Ana | Não cadastrado | Não cadastrado |
| Aline | Ferreira | 22 |
De forma prática realizamos a substituição de dados nulos e vazios para o valor 'Não cadastrado', assim retornando ao usuário uma resposta legível.
Consultar a relação de Termos e Abreviaturas acesse aqui.
FELIPE BARBOSA FERREIRA
Até o próximo post!
Nenhum comentário:
Postar um comentário