Questão FC372903
Considere a existência de uma tabela chamada Funcionario que possui diversos campos, dentre eles o campo nome, que aceita cadeia de caracteres, e o campo comissao, que aceita númer
Linguagem SQL
FCC · 2018
Considere a existência de uma tabela chamada Funcionario que possui diversos campos, dentre eles o campo nome, que aceita cadeia de caracteres, e o campo comissao, que aceita números reais. No Oracle, para exibir o nome de todos os funcionários e suas respectivas comissões, de forma que se o funcionário não receber comissão apareça 'Sem comissão', utiliza-se a instrução SQL
- SELECT nome, VRF((comissao,null),'Sem comissão') FROM Funcionario;
- SELECT nome, NVL((comissao,null),'Sem comissão') FROM Funcionario;
- SELECT nome, NVL(TO_CHAR(comissao),'Sem comissão') FROM Funcionario;
- SELECT nome, ISNULL(comissao,'Sem comissão') FROM Funcionario;
- SELECT nome, GET((comissao,null),'Sem comissão') FROM Funcionario;
Mostrar resposta e comentário
Gabarito
Certo
Comentário do professor
A instrução SELECT nome, NVL(TO_CHAR(comissao),'Sem comissão') FROM Funcionario; usa duas funções importantes do Oracle para tratar valores ausentes. A função NVL tem a forma NVL(expr1, expr2) e retorna expr2 quando expr1 é NULL, caso contrário retorna expr1.
Como o campo comissao é numérico, é necessário convertê‑lo para texto com TO_CHAR(comissao) antes de aplicar o NVL. Isso evita erro de tipo, pois NVL preserva o tipo de expr1. Assim, quando comissao for NULL será exibido 'Sem comissão', e quando houver valor será mostrado o número convertido para string.
O resultado retorna o nome e a comissão adequada para cada registro da tabela Funcionario.
Conteúdo do catálogo FC Concursos · Atualizado em