No PostgreSQL, a função COALESCE retorna o primeiro argumento não-nulo. Ele é geralmente usado com a instrução SELECT para lidar com valores nulos efetivamente.

Syntax: COALESCE (argument_1, argument_2, …);

A função COALESCE aceita um número ilimitado de argumentos. Ela retorna o primeiro argumento que não é nulo. Se todos os argumentos forem nulos, a função COALESCE retorna nulos. a função COALESCE avalia os argumentos da esquerda para a direita até encontrar o primeiro argumento não nulo. Todos os argumentos restantes do primeiro argumento não-nulo não são avaliados.

Exemplo:
Para fins de demonstração vamos primeiro criar uma tabela (digamos, items) usando a declaração abaixo:

CREATE TABLE items ( ID serial PRIMARY KEY, product VARCHAR (100) NOT NULL, price NUMERIC NOT NULL, discount NUMERIC);

Existem quatro campos na tabela items table:

  • id: a chave primária que identifica o item na tabela de itens.
  • produto: o nome do produto.
  • preço: o preço do produto.
  • desconto: o desconto do produto.

Agora inserimos alguns registos na tabela items usando a declaração INSERT da seguinte forma:

INSERT INTO items (product, price, discount)VALUES ('A', 1000, 10), ('B', 1500, 20), ('C', 800, 5), ('D', 500, NULL);

Finalmente consultamos os preços líquidos dos produtos usando o seguinte:

SELECT product, (price - discount) AS net_priceFROM items;

Esta situação levará ao seguinte:

> se olhar para a quarta linha, notará que o preço líquido do produto D é nulo o que parece não estar correcto. A questão é que o desconto do produto D é nulo, portanto quando tomamos o valor nulo para calcular o preço líquido, o PostgreSQL retorna nulo. O preço correcto, precisamos de assumir que se o desconto for nulo, é zero. Então podemos usar a função COALESCE da seguinte forma:

SELECT product, (price - COALESCE(discount, 0)) AS net_priceFROM items;

Output:

Articulação de artigos :

admin

Deixe uma resposta

O seu endereço de email não será publicado.

lg