-
A função NVL é utilizada quando queremos imprimir uma mensagem em determinadas linhas em que o campo especificado for nulo.
No exemplo a seguir, vamos exemplificar a função NVL para aqueles telefones que forem nulos,
os campos ao invés de ficarem em branco, serão demonstrados com a seguinte mensagem: "Telefone Nulo".
Vamos ao exemplo, a sintaxe desse comando é tranquilamente simples, a função NVL recebe dois parâmetros, NVL(x, y) o x no caso, é o campo que verificaremos valores nulos, o campo y será o valor que será atribuído caso o campo especificado em x seja realmente nulo.
SELECT NVL(telefone, "Telefone Nulo")
FROM clientes;
-
Vamos a correção:
a) IIF. E
A sintaxe desse comando é: IIF (teste-expressao-boleana,exp1,exp2). Exp1 corresponde ao valor caso retorne 'TRUE', exp2 corresponde ao valor caso retorne 'FALSE'. A questão está errada por dois motivos: o comando é do SQL SERVER e não ORACLE, e além disse a sintaxe está errada. No enunciado não consta o teste da expressão booleana.
b) E.
A sintaxe desse comando é IFNULL (exp1,exp2). Exp1 corresponde ao valor falso e exp2 é o valor verdade. A questão está errada por um motivo: o comando é do MySQL e não do Oracle.
c) C. Comando usado na Oracle, e tem como sintaxe: NVL (exp1,exp2). Exp1 corresponde ao resultado caso o valor não seja nulo, e exp2 corresponde ao resultado caso o valor seja nulo.
d) E, pelo mesmo motivo da letra B. Vide item B.
e) E. A sintaxe desse comando é: ISNULL (exp1,exp2). Exp1 é o valor falso, exp2 é o valor verdadeiro. A questão está errada por um dois: o comando é do SQLServer, e a sintaxe está errada.
-
Conversando com professores sobre essa questão, me disseram que deveria ser anulada, pois a c) e a d) estão corretas.
-
C) e D) estão corretas
Só consultar na internet: http://stackoverflow.com/questions/950084/oracle-differences-between-nvl-and-coalesce
Além disso, a D) seria a melhor alternativa, pois conforme artigo acima, o COALESCE não calcula/avalia o segundo valor sem que o primeiro seja nulo, ou seja, COALESCE é mais rápido.
-
Conforme dito pelos demais colegas, as funções NVL e COALESCE fazem a mesma coisa.
Substituem um valor nulo por outro valor.
Entretanto, a função NVL é um padrão Oracle, enquanto a função COALESCE é padrão ANSI.
E no enunciado fica explícito o SGBD utilizado --> Oracle 11g
-
Concordo com os colegas Adailton e Jean, a questão deveria ter sido anulada. Embora NVL seja a função específica do Oracle, COALESCE também suportada. Diferentemente de IFNULL, por exemplo, que é do MYSQL, e ISNULL, que é o SQL Server.
-
Função NVL: 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.
https://www.1keydata.com/pt/sql/sql-nvl.php