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 |