Maybaygiare.org

Blog Network

Como usar carvão em PostgreSQL

resumo: este artigo analisa métodos para o tratamento de valores nulos em PostgreSQL usando a função COALESCE. Os tópicos discutidos com exemplos incluem:

1. O que é uma função COALESCE?2. Impedindo valores nulos com COALESCE

neste post, vamos entender o que é a função COALESCE e como usá-la no PostgreSQL.o que é uma função COALESCE?

COALESCE é uma função do sistema incorporada que pode ser considerada uma das expressões condicionais disponíveis no PostgreSQL. NULLIF, GREATEST, LEAST, and COALESCE are the types of conditional expressions in PostgreSQL.

A função COALESCE devolve a primeira expressão não-nula na lista indicada. Se todos os argumentos são nulos, então ele retornará NULL como sua saída.

O suporte a sintaxe é:

COALESCE(value_1,value_2,value_3,........value_n)

Os parâmetros ou argumentos são:

value_1,value_2,value_3,........value_n

Limitações

alguns pontos sobre a função de ADESÃO:

  • Os parâmetros são testados para valores não NULOS.
  • Os parâmetros devem ser todos do mesmo tipo de dados. Caso contrário, resultará num erro.
  • A função COALESCE aceita um número ilimitado de argumentos.leva os argumentos da esquerda para a direita. a função Coalesce fornece compatibilidade semelhante, como NVL e IFNULL, que estão disponíveis em outros DBMS.
  • CASE and COALESCE can be used for similar purposes, but the advantage of using COALESCE is that it requires far less typing.
  • parará de avaliar os parâmetros assim que o primeiro valor não nulo for atingido.

exemplos

1. Aqui está como COALESCE funciona com um valor não nulo para o primeiro parâmetro:

a função COALESCE Encontra a primeira expressão não-nula no início, por isso irá sempre produzir o mesmo resultado, independentemente do que os restantes parâmetros contêm.2. Aqui é como COALESCE funciona quando um valor NULO é o primeiro parâmetro:

postgres=# select coalesce (null,1,2); coalesce ---------- 1(1 row)

A função de ADESÃO encontrado um valor NULO no primeiro parâmetro, então ele continuou para o segundo parâmetro, que não foi NULO, de modo que o valor do parâmetro foi devolvido.3. Aqui está como interpreta vários valores nulos:

postgres=# SELECT coalesce(null,null, 1, 2, 3, null, 4); coalesce ---------- 1(1 row)

existem múltiplos NULLs nesta expressão, mas como o primeiro valor não NULL foi alcançado no terceiro parâmetro, todos os valores restantes foram desconsiderados.4. Se os tipos de dados dos parâmetros não coincidirem, isto irá produzir um erro:

postgres=# SELECT coalesce(1,now(),null);ERROR: COALESCE types integer and timestamp with time zone cannot be matched

o primeiro parâmetro é um inteiro, e a função now() devolve um timestamp com Fuso-horário. Como estes parâmetros não são do mesmo tipo, a assinatura da função é inválida, e assim produz e erro.5. Você pode usar outras funções como parâmetros dentro da função COALESCE:

postgres=# SELECT coalesce(nvl(null,199),least(8,null),avg(9.9)); coalesce ---------- 199(1 row)

impedindo valores nulos com COALESCE

uma aplicação útil da função COALESCE é evitar que valores nulos apareçam nos resultados da consulta.

exemplo

1. Crie uma tabela “vendas” usando o comando CREATE TABLE:

postgres=# CREATE TABLE sales (serial_id int primary key, product_name varchar(50), amount numeric, discount numeric); CREATE TABLE

2. Inserir dados no quadro “vendas”:

3. Se tentarmos subtrair um valor na coluna ” desconto “de um valor na coluna” montante”, a última linha irá devolver um valor nulo. Isto porque qualquer aritmética realizada em um valor nulo resultará em nulo.

postgres=# SELECT amount - discount as "final bill" FROM sales; final bill ------------ 990 1480 800 <=Null(4 rows)

Deixe uma resposta

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