Esse capitulo mostra as funções do Oracle.
Parte 1

Outras Funções:

NVL(Expressão1, Expressão2);
Ambos são necessários e caso a Expressão1 seja NULL retorna o a Expressão2;

DECODE(Expressão1, Expressão_Busca, Resultado);
Os dois primeiros são necessários e o terceiro é opcional. O Expressao_Busca e Resultado podem se repetir, o teste é simple, se Expressão1 for igual a Expressão_Busca assume o Resultado. Se o Resultado não for colocado, usa NULL como default. O tipo do retorno é um VARCHAR2. O DECODE é o mesmo que IF-THEN-ELSE.

CASE Expressão1
WHEN Condição1 THEN Resultado1
WHEN Condição2 THEN Resultado2
….
ELSE ResultadoFinal END
Para o CASE funcionar a Expressão1 é necessária e se for igual a Condição1 retorna o Resultado1. Retorna o primeiro que encontrar, caso não encontre ninguém retorna o ELSE que é opcional, se não existir retorna NULL.
Pode ser colocado um alias para a CASE se estiver em uma COLUNA SQL.

NULLIF(Expressão1, Expressão2);
Ambos os parametros são necessários. Se Expressão1 e Expressão2 são iguais retorna NULL, se não retorna Expressão1. O tipo do retorno é o mesmo que o comparado, se estiver comparando VARCHAR2, retorna VARCHAR2.

Exemplos:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”U2VsZWN0IE5WTCgnTnVsbCcsJ0V4cHJlc3NhbzInKSBGcm9tIER1YWw7ClNlbGVjdCBOVkwoTnVsbCwnRXhwcmVzc2FvMicpIEZyb20gRHVhbDsKCgpjcmVhdGUgdGFibGUgU2lnbGFfRXN0YWRvIChDb2wxIHZhcmNoYXIyKDIpKTsKaW5zZXJ0IGludG8gU2lnbGFfRXN0YWRvIHZhbHVlcyAoJ1NDJyk7Cmluc2VydCBpbnRvIFNpZ2xhX0VzdGFkbyB2YWx1ZXMgKCdQUicpOwppbnNlcnQgaW50byBTaWdsYV9Fc3RhZG8gdmFsdWVzICgnUlMnKTsKaW5zZXJ0IGludG8gU2lnbGFfRXN0YWRvIHZhbHVlcyAoJ1NQJyk7Cmluc2VydCBpbnRvIFNpZ2xhX0VzdGFkbyB2YWx1ZXMgKCdSSicpOwoKLS0gUmV0b3JuYW5kbyBOVUxMIHNlIG7Do28gY29sb2NhciBvIFJlc3VsdGFkbwpTZWxlY3QgRGVjb2RlKENvbDEsICdTQycsICdTYW50YSBDYXRhcmluYScsICdQUicsICdQYXJhbmEnLCAnUlMnLCAnUmlvIEdyYW5kZSBkZSBTdWwnKQogIEZyb20gU2lnbGFfRXN0YWRvOwotLSBSZXRvcm5hbmRvIG8gUmVzdWx0YWRvClNlbGVjdCBEZWNvZGUoQ29sMSwgJ1NDJywgJ1NhbnRhIENhdGFyaW5hJywgJ1BSJywgJ1BhcmFuYScsICdSUycsICdSaW8gR3JhbmRlIGRlIFN1bCcsJ1Jlc3VsdGFkbycpCiAgRnJvbSBTaWdsYV9Fc3RhZG87CgpTZWxlY3QgKiBmcm9tIFNpZ2xhX0VzdGFkbzsKLS0gUmV0b3JuYW5kbyBOVUxMIHNlbSBFTFNFClNlbGVjdCBDYXNlIENvbDEKICAgICAgICAgV2hlbiAnU0MnIFRoZW4KICAgICAgICAgICdTYW50YSBDYXRhcmluYScKICAgICAgICAgV2hlbiAnUFInIFRoZW4KICAgICAgICAgICdQYXJhbmEnCiAgICAgICAgIFdoZW4gJ1JTJyBUaGVuCiAgICAgICAgICAnUmlvIEdyYW5kZSBkZSBTdWwnCiAgICAgICBFbmQKICBGcm9tIFNpZ2xhX0VzdGFkbzsKLS0gUmV0b3JuYW5kbyBFTFNFIGUgY29tIEFMSUFTIG5hIENPTFVOQQpTZWxlY3QgQ2FzZSBDb2wxCiAgICAgICAgIFdoZW4gJ1NDJyBUaGVuCiAgICAgICAgICAnU2FudGEgQ2F0YXJpbmEnCiAgICAgICAgIFdoZW4gJ1BSJyBUaGVuCiAgICAgICAgICAnUGFyYW5hJwogICAgICAgICBXaGVuICdSUycgVGhlbgogICAgICAgICAgJ1JpbyBHcmFuZGUgZGUgU3VsJwogICAgICAgICBFbHNlCiAgICAgICAgICAnUmVzdWx0YWRvJwogICAgICAgRW5kIGFzICJOTV9FU1RBRE8iIAogIEZyb20gU2lnbGFfRXN0YWRvOwoKU2VsZWN0IE51bGxpZignRXhwcmVzc2FvMicsICdFeHByZXNzYW8xJykgRnJvbSBEdWFsOwpTZWxlY3QgQ29sMSwgTnVsbGlmKENvbDEsICdTUCcpIEZyb20gU2lnbGFfRXN0YWRvOw==” hover_enabled=”0″]U2VsZWN0IE5WTCgnTnVsbCcsJ0V4cHJlc3NhbzInKSBGcm9tIER1YWw7ClNlbGVjdCBOVkwoTnVsbCwnRXhwcmVzc2FvMicpIEZyb20gRHVhbDsKCgpjcmVhdGUgdGFibGUgU2lnbGFfRXN0YWRvIChDb2wxIHZhcmNoYXIyKDIpKTsKaW5zZXJ0IGludG8gU2lnbGFfRXN0YWRvIHZhbHVlcyAoJ1NDJyk7Cmluc2VydCBpbnRvIFNpZ2xhX0VzdGFkbyB2YWx1ZXMgKCdQUicpOwppbnNlcnQgaW50byBTaWdsYV9Fc3RhZG8gdmFsdWVzICgnUlMnKTsKaW5zZXJ0IGludG8gU2lnbGFfRXN0YWRvIHZhbHVlcyAoJ1NQJyk7Cmluc2VydCBpbnRvIFNpZ2xhX0VzdGFkbyB2YWx1ZXMgKCdSSicpOwoKLS0gUmV0b3JuYW5kbyBOVUxMIHNlIG7Do28gY29sb2NhciBvIFJlc3VsdGFkbwpTZWxlY3QgRGVjb2RlKENvbDEsICdTQycsICdTYW50YSBDYXRhcmluYScsICdQUicsICdQYXJhbmEnLCAnUlMnLCAnUmlvIEdyYW5kZSBkZSBTdWwnKQogIEZyb20gU2lnbGFfRXN0YWRvOwotLSBSZXRvcm5hbmRvIG8gUmVzdWx0YWRvClNlbGVjdCBEZWNvZGUoQ29sMSwgJ1NDJywgJ1NhbnRhIENhdGFyaW5hJywgJ1BSJywgJ1BhcmFuYScsICdSUycsICdSaW8gR3JhbmRlIGRlIFN1bCcsJ1Jlc3VsdGFkbycpCiAgRnJvbSBTaWdsYV9Fc3RhZG87CgpTZWxlY3QgKiBmcm9tIFNpZ2xhX0VzdGFkbzsKLS0gUmV0b3JuYW5kbyBOVUxMIHNlbSBFTFNFClNlbGVjdCBDYXNlIENvbDEKICAgICAgICAgV2hlbiAnU0MnIFRoZW4KICAgICAgICAgICdTYW50YSBDYXRhcmluYScKICAgICAgICAgV2hlbiAnUFInIFRoZW4KICAgICAgICAgICdQYXJhbmEnCiAgICAgICAgIFdoZW4gJ1JTJyBUaGVuCiAgICAgICAgICAnUmlvIEdyYW5kZSBkZSBTdWwnCiAgICAgICBFbmQKICBGcm9tIFNpZ2xhX0VzdGFkbzsKLS0gUmV0b3JuYW5kbyBFTFNFIGUgY29tIEFMSUFTIG5hIENPTFVOQQpTZWxlY3QgQ2FzZSBDb2wxCiAgICAgICAgIFdoZW4gJ1NDJyBUaGVuCiAgICAgICAgICAnU2FudGEgQ2F0YXJpbmEnCiAgICAgICAgIFdoZW4gJ1BSJyBUaGVuCiAgICAgICAgICAnUGFyYW5hJwogICAgICAgICBXaGVuICdSUycgVGhlbgogICAgICAgICAgJ1JpbyBHcmFuZGUgZGUgU3VsJwogICAgICAgICBFbHNlCiAgICAgICAgICAnUmVzdWx0YWRvJwogICAgICAgRW5kIGFzICJOTV9FU1RBRE8iIAogIEZyb20gU2lnbGFfRXN0YWRvOwoKU2VsZWN0IE51bGxpZignRXhwcmVzc2FvMicsICdFeHByZXNzYW8xJykgRnJvbSBEdWFsOwpTZWxlY3QgQ29sMSwgTnVsbGlmKENvbDEsICdTUCcpIEZyb20gU2lnbGFfRXN0YWRvOw==[/et_pb_dmb_code_snippet]

Comentário:
No Exemplo: Select Nullif('Expressao2', 'Expressao1') From Dual; Retornou Expressao2, mas falei na descrição que é Expressao1, ok? Aqui foi proposital, pois é a PRIMEIRA EXPRESSAO escrita, fiquem atentos.

Exercício:
1) O SQL: Select Distinct Nullif('SP', Col1) From Sigla_Estado;
Retorna quantas linhas?
a) 1
b) 2
c) 0
d) 5

Book: SQL Certified Expert Exam Guide, Steve O’Hearn pela Oracle Press
Link Book na Amazon

Att,
capin