PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Renvoie la valeur booléenne sous la forme TRUE ou FALSE dans Select (PostgreSQL/pgAdmin)

Si tout ce que vous voulez montrer est le littéral TRUE ou FALSE , vous pouvez utiliser les instructions de cas comme vous l'aviez proposé. Puisque PostgreSQL traite TRUE , true , yes , on , y , t et 1 comme vrai, je contrôlerais à quoi je voudrais que la sortie ressemble.

La clause Where peut être écrite comme :

select * from tablename where active
--or--
select * from tablename where active = true

(Ma recommandation est la même que PostgreSQL - utilisez true)

Lors de la sélection, bien qu'il puisse y avoir une hésitation à utiliser les déclarations de cas, je recommanderais toujours de le faire pour avoir le contrôle sur votre littéral de chaîne de sortie.

Votre requête ressemblerait à ceci :

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

Exemple 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 |