GPO ( Grupo de Profissionais Oracle )
A maior comunidade Oracle do Brasil !

My Certification Path – Chapter I (Coalesce)

Como tinha dito no meu último post, eu finalmente vou tirar minha certificação. Na verdade, já passou há muito da hora.

A prova escolhida por mim foi a 1Z0-051 – Oracle Database 11g: SQL Fundamentals I e vai ser um esquenta para a 1Z0-047 – Oracle Database SQL Expert.

Vou aproveitar que estou determinado, e demonstrar sobre pontos interessantes encontrados nos estudos para a prova. Tenho certeza de que isso será de grande valia para outros que queiram seguir o caminho da certificação.

Para iniciar, vou falar um pouco sobre a função COALESCE.

COALESCE

Lembro de ter usado apenas uma vez essa função interessante. Ele retorna o primeiro argumento não NULO que encontrar, caso não encontre, retorna NULL. É bem útil quando se tem vários argumentos de possíveis retornos nos quais apenas um é preenchido em um registro.

Um exemplo:

SELECT COALESCE(NULL,NULL,NULL,4,NULL,3) FROM dual

RETORNA 4

SELECT COALESCE(NULL,NULL,NULL,3) FROM dual

RETORNA 3

SELECT COALESCE(NULL,NULL) FROM dual

RETORNA NULL

você pode utilizar valores fixos ou campos nos argumentos da função.

SELECT COALESCE(a.cod_item,a.cod_produto, a.cod_popid) FROM produto a

Ele irá retornar o valor do primeiro campo que não for NULO. Caso não encontre, retorna NULL.

Este é o primeiro post de muitos que virão, espero que tenham gostado !

Um grande abraço

Share

You may also like...

4 Responses

  1. Bruno Reis disse:

    Ae sim Will, parabéns! Vou acompanhar seus posts! Abraços :p

  2. Jann Claude Mousquer disse:

    Função interessante, mas tive que checar a documentação do Oracle, pois o seu exemplo acabou me confundindo um pouco.
    Creio que devio ao formato que foi exibido o retorno.
    Mas gostei do post, acompanharei os conseguintes.

  3. Sergio Willians disse:

    Jann, muito obrigado pelo feedback ! Nos próximos colocarei o retorno do resultado do SQL Plus para ficar mais claro.

    Abraço

Deixe um comentário

O seu endereço de e-mail não será publicado.