PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Booleschen Wert als TRUE oder FALSE in Select zurückgeben (PostgreSQL/pgAdmin)

Wenn Sie nur das wörtliche TRUE anzeigen möchten oder FALSE , können Sie die von Ihnen vorgeschlagenen Fallanweisungen verwenden. Da PostgreSQL TRUE behandelt , true , yes , on , y , t und 1 als wahr, würde ich steuern, wie die Ausgabe aussehen soll.

Where-Klausel kann wie folgt geschrieben werden:

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

(Meine Empfehlung ist dieselbe wie bei PostgreSQL - verwenden Sie true)

Obwohl man bei der Auswahl zögern kann, die Case-Anweisungen zu verwenden, würde ich dennoch empfehlen, dies zu tun, um die Kontrolle über das Ausgabe-String-Literal zu haben.

Ihre Abfrage würde wie folgt aussehen:

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

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