Pokud vše, co chcete zobrazit, je doslovné TRUE nebo FALSE , můžete použít případová prohlášení, jak jste navrhli. Protože PostgreSQL zachází s TRUE , true , yes , on , y , t a 1 ve skutečnosti bych řídil, jak bych chtěl, aby výstup vypadal.
Kde klauzuli lze zapsat jako:
select * from tablename where active
--or--
select * from tablename where active = true
(Moje doporučení je stejné jako u PostgreSQL – použijte true)
I když můžete při výběru váhat s použitím příkazů case, přesto bych to doporučil, abyste měli kontrolu nad výstupním řetězcovým literálem.
Váš dotaz by vypadal takto:
select
case when active = TRUE then 'TRUE' else 'FALSE' end as active_status,
...other columns...
from tablename
where active = TRUE;
Příklad SQLFiddle:https://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 |