PostgreSql -> Sempre retornar um registro
21/02/2020
0
CLIENTE NOME VALOR
------------------------
1 A 10
1 A 20
2 B 30
O que eu preciso:
Select distinct cliente from tabela where cliente = 2 and valor > 5
Retorna:
CLIENTE
--------
2
Quando existe algum registro que satisfaça a condição, tá ok.
Porém quando não existe, acontece como descrito abaixo:
Select distinct cliente from tabela where cliente = 2 and valor > 50
Retorna:
CLIENTE
---------
(nenhum registro aqui)
o que eu queria como retorno nesse caso seria:
CLIENTE
--------
0
Como faria para conseguir esse resultado?
Alberto
Posts
21/02/2020
Kleber Santos
CLIENTE NOME VALOR
------------------------
1 A 10
1 A 20
2 B 30
O que eu preciso:
Select distinct cliente from tabela where cliente = 2 and valor > 5
Retorna:
CLIENTE
--------
2
Quando existe algum registro que satisfaça a condição, tá ok.
Porém quando não existe, acontece como descrito abaixo:
Select distinct cliente from tabela where cliente = 2 and valor > 50
Retorna:
CLIENTE
---------
(nenhum registro aqui)
o que eu queria como retorno nesse caso seria:
CLIENTE
--------
0
Como faria para conseguir esse resultado?
Select distinct
CASE
WHEN cliente > 2 THEN cliente
ELSE "0"
END AS Clientes
from
tabela
where 1=1
segue a documentação:
https://www.w3schools.com/sql/sql_case.asp
24/02/2020
Alberto
porque ele só passa a existir depois do where, ou seja se o where for FALSE para
todos os registros a query retorna ZERO registros, independente do tratamento do CASE.
26/02/2020
Anderson Gonçalves
CLIENTE NOME VALOR
------------------------
1 A 10
1 A 20
2 B 30
O que eu preciso:
Select distinct cliente from tabela where cliente = 2 and valor > 5
Retorna:
CLIENTE
--------
2
Quando existe algum registro que satisfaça a condição, tá ok.
Porém quando não existe, acontece como descrito abaixo:
Select distinct cliente from tabela where cliente = 2 and valor > 50
Retorna:
CLIENTE
---------
(nenhum registro aqui)
o que eu queria como retorno nesse caso seria:
CLIENTE
--------
0
Como faria para conseguir esse resultado?
Para trazer valores com Zero ao invés de Nulo faça:
Select Coalesce(Campo,0)as ApelidoCampo from Tabela
Espero ter ajudado.
Skype: anderson@case13.com.br
26/02/2020
Alberto
Esse código que você postou funciona bem para retornar
o valor de um campo com zero ao invés de nulo,
porém quando existe uma clausula where cujo resultado
é falso para todos os registros da tabela a query retorna
<nenhum registro>
É ai que está o meu problema:
quando isso acontecer eu gostaria que ao invés de: <nenhum registro>
a query sempre retornasse ZERO no campo do meu select.
Clique aqui para fazer login e interagir na Comunidade :)