FC ConcursosFC Concursos

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 

  1. SELECT nome, VRF((comissao,null),'Sem comissão') FROM Funcionario;
  2. SELECT nome, NVL((comissao,null),'Sem comissão') FROM Funcionario;
  3. SELECT nome, NVL(TO_CHAR(comissao),'Sem comissão') FROM Funcionario;
  4. SELECT nome, ISNULL(comissao,'Sem comissão') FROM Funcionario;
  5. 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

Continue aprendendo