SóProvas


ID
1232053
Banca
FCC
Órgão
TRT - 16ª REGIÃO (MA)
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

Considere o comando PL/SQL a seguir:

select nome, cargo, salario, comissao, (salario*12)+NVL(comissao,2) from funcionario;

A função NVL foi usada para

Alternativas
Comentários
  • NVL - Esta função atribui o valor informado na coluna, quando esta for nula. http://www.techonthenet.com/oracle/functions/nvl.php

    Na consulta em questão, sempre que o atributo comissão vier nulo será atribuído o valor 2.


    Resposta: converter valores nulos do campo comissao para 2.
  • Funções NULL relacionadas:

    NVL

    A função NVL permite substituir valores nulos com um valor padrão. Se o valor do primeiro parâmetro for nulo, a função retorna o valor no segundo parâmetro. Se o primeiro parâmetro é qualquer valor diferente de nulo, ele é retornado inalterado.

      SELECT id, NVL(col1, 'ZERO') AS output FROM null_test_tab ORDER BY id;

    DECODE

    A função DECODE não é especificamente para o tratamento de valores nulos, mas ele pode ser usado de uma forma semelhante à função NVL. Sintaxe:

      DECODE( expression , search , result [, search , result]... [, default] )

    Exemplo:

      SELECT id, DECODE(col1, NULL, 'ZERO', col1) AS output FROM null_test_tab ORDER BY id;

    NVL2

    A função NVL2 aceita três parâmetros. Se o primeiro valor do parâmetro não é nulo que devolve o valor do segundo parâmetro. Se o primeiro valor do parâmetro é null, ele retorna o terceiro parâmetro.

      SELECT id, NVL2(col1, col2, col3) AS output FROM null_test_tab ORDER BY id;

    COALESCE

    Ele aceita dois ou mais parâmetros e retorna o primeiro valor não nulo em uma lista. Se todos os parâmetros conter valores nulos, retorna nulo.

      SELECT id, COALESCE(col1, col2, col3) AS output FROM null_test_tab ORDER BY id;

    NULLIF

    Ele aceita dois parâmetros e retorna nulo se ambos os parâmetros são iguais. Se eles não são iguais, o primeiro valor do parâmetro é devolvido.

      SELECT id, NULLIF(col3, col4) AS output FROM null_test_tab ORDER BY id;

    LNNVL

    A função LNNVL está disponível desde, pelo menos, Oracle 9i, mas foi indocumentados até Oracle 11g. Ele é utilizado em uma cláusula WHERE para avaliar uma condição. Se essa condição for avaliada como falsa ou desconhecida, ele retorna true. Se a condição for avaliada como verdadeira, ele retorna falso.

      SELECT id, col3 FROM null_test_tab WHERE LNNVL(col1 IS NULL) ORDER BY id;

    NANVL

    A função NANVL foi introduzido no Oracle 10g para uso com o BINARY_FLOAT e tipos de dados BINARY_DOUBLE, que pode conter um especial "não é um número" ou valor "NaN". A função é semelhante à NVL, mas em vez de testar NULL ele testa valores "NaN".

    SYS_OP_MAP_NONNULL

    Vimos que uma comparação de "NULL = NULL" sempre retornará falso, mas às vezes você quer que ele retorne true. É possível fazer isso acontecer usando as funções NVL e DECODE, mas dependendo de como você usá-los esta depende de você converter o valor nulo para outro valor que você espera nunca vai estar presente na coluna ou variável.

      SELECT id, 'col1=col2'

    FROM null_test_tab

    WHERE SYS_OP_MAP_NONNULL(col1) = SYS_OP_MAP_NONNULL(col2);
  • NVL é um função de 2 parâmetros que tem por objetivo testar o primeiro parâmetro, se o mesmo for nulo, então retornará o valor do segundo parâmetro caso contrário retorna o valor do primeiro parâmetro.

    Exemplificando, se informarmos um campo de um determinado tipo no primeiro parametro do NVL e no segundo informar ZERO, então ao rodar o SQL o valor do primeiro campo for NULO o valor retornado será ZERO.

    select NVL(codigo_cliente, 0) as campo from dual;

    retorno 

    campo

    -------|

    0 |

  • Pergunta fácil pra quem sabia mas um pouco esquisita.

    Porque alguém converteria o campo comissao pra "2"? Quem não ganha comissao recebe 2 reais no fim do ano? Hardcoded desse jeito?

     

     

  • 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