Julgue os seguintes itens, referentes a frameworks para cama...

Próximas questões
Com base no mesmo assunto
Q351959 Banco de Dados
Julgue os seguintes itens, referentes a frameworks para camada de persistência e SQL.

Considerando que a consulta abaixo seja realizada em um SGBD Oracle, é correto afirmar que o valor 0 será mostrado na coluna salario quando um valor NULL for retornado.
SELECT nome, NVL(salario, 0), cidade
FROM empregado
WHERE salario IS NULL
ORDER BY nome;

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa Correta: C (certo)

A questão em apreço aborda um conceito muito utilizado no âmbito dos bancos de dados Oracle, que é a função NVL. Esta função é utilizada para substituir valores NULL por um valor alternativo que o usuário especificar. A sintaxe da função NVL é NVL(expressão1, expressão2), onde expressão1 é o valor a ser verificado e expressão2 é o valor a ser retornado caso expressão1 seja NULL.

No cenário apresentado pela questão, o comando SQL realiza uma seleção dos empregados cujo salário é NULL. A função NVL é aplicada na coluna salario para garantir que, na apresentação dos resultados, ao invés de aparecer o valor NULL, seja mostrado o número 0. Portanto, quando o comando SELECT nome, NVL(salario, 0), cidade FROM empregado WHERE salario IS NULL ORDER BY nome; é executado, a coluna salario exibirá o valor 0 para todos os registros que tiverem um valor NULL para o salário, atendendo assim ao comportamento esperado pela função NVL.

O conhecimento necessário para resolver essa questão envolve compreensão básica de comandos SQL, o entendimento do que é um valor NULL e como o Oracle trata esses valores, além do domínio das funções que permitem manipular e substituir valores NULL, como é o caso da função NVL. A habilidade em identificar o propósito e a aplicação correta da função NVL é essencial para profissionais que trabalham com bancos de dados, especialmente com o Oracle, onde essa função é amplamente utilizada.

Portanto, a justificativa para a alternativa correta está no entendimento correto do uso da função NVL, que efetivamente substituirá valores NULL pela constante 0 na coluna salario, validando a afirmação proposta na questão.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Respondi a questão considerando o item errado!!!
Justificativa: O Comando precisaria usar uma renomeação "SALARIO" após o uso da função da seguinte forma:
SELECT nome, NVL(salario, 0) SALARIO, cidade
FROM empregado
WHERE salario IS NULL
ORDER BY nome;


O resultado da consulta original da questão não terá a coluna salario, pois a consulta retornará um nome genérico como resultado da função NVL. Exemplo de retorno genérico: column1.
Na minha opinião, faltou um recurso.
No exemplo contido na documentação da Oracle há a renomeação, veja:
http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions105.htm

Clark, em se tratando de Banca CESPE vamos ao que se pede exatamente na questão,ou seja,  "é correto afirmar que o valor 0 será mostrado na coluna salario quando um valor NULL for retornado", o renomeação é algo opcional...

Errei por pensar exatamente igual ao colega clarck.

Se considerarmos apenas o resultado da consulta, fato é que não vai ter uma coluna "salario".

Também achei a questão difícil por pensar que poderia haver uma pegadinha aí com essa questão de não ter alias.

A função NVL( ) encontra-se disponível no sistema Oracle, mas não nos sistemas MySQL ou SQL Server. Esta função é utilizada para substituir o valor NULL por outro valor. É semelhante à função IFNULL no sistema MySQL e à função ISNULL no SQL Server.

SELECT SUM ( NVL (Sales,100)) FROM Sales_Data;

 

Certo

 

https://www.1keydata.com/pt/sql/sql-nvl.php

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo