sql >> Databáze >  >> RDS >> PostgreSQL

Vraťte booleovskou hodnotu jako TRUE nebo FALSE ve výběru (PostgreSQL/pgAdmin)

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


  1. SQL s hodností a oddílem

  2. „Závažná chyba interního připojení“ při provádění nativně kompilované uložené procedury v SQL Server 2019 (známá chyba)

  3. Jak najít port pro MS SQL Server 2008?

  4. Vícenásobné vztahy mezi dvěma subjekty, je to dobrá praxe?