PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Retorna o valor booleano como TRUE ou FALSE em Select (PostgreSQL/pgAdmin)


Se tudo o que você quer mostrar é o literal TRUE ou FALSE , você pode usar as instruções case como você propôs. Como o PostgreSQL trata TRUE , true , yes , on , y , t e 1 como verdade, eu controlaria como gostaria que a saída se parecesse.

Where cláusula pode ser escrita como:
select * from tablename where active
--or--
select * from tablename where active = true

(Minha recomendação é a mesma do PostgreSQL - use true)

Ao selecionar, embora possa haver hesitação em usar as instruções case, eu ainda recomendo fazer isso para ter controle sobre o literal de string de saída.

Sua consulta ficaria assim:
select 
  case when active = TRUE then 'TRUE' else 'FALSE' end as active_status,
  ...other columns...
from tablename
where active = TRUE;

Exemplo do SQLFiddle:http://sqlfiddle.com/#!15/4764d/1
create table test (id int, fullname varchar(100), active boolean);
insert into test values (1, 'test1', FALSE), (2, 'test2', TRUE), (3, 'test3', TRUE);

select
  id,
  fullname,
  case when active = TRUE then 'TRUE' else 'FALSE' end as active_status
from test;

| id | fullname | active_status |
|----|----------|---------------|
|  1 |    test1 |         FALSE |
|  2 |    test2 |          TRUE |
|  3 |    test3 |          TRUE |