sql >> Databasteknik >  >> RDS >> PostgreSQL

Returnera booleskt värde som TRUE eller FALSE i Select (PostgreSQL/pgAdmin)

Om allt du vill visa är den bokstavliga TRUE eller FALSE , kan du använda fallbeskrivningarna som du hade föreslagit. Eftersom PostgreSQL behandlar TRUE , true , yes , on , y , t och 1 som sant, jag skulle styra hur jag vill att utdata ska se ut.

Där klausul kan skrivas som:

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

(Min rekommendation är densamma som PostgreSQL - använd true)

När du väljer, även om det kan finnas tvekan om att använda fallsatserna, rekommenderar jag ändå att du gör det för att ha kontroll över din utdatasträng.

Din fråga skulle se ut så här:

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

SQLFiddle-exempel: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. Hur man väljer intervall i ett rekordintervall i Oracle

  2. Kör SERVERPROPERTY() mot en länkad server i SQL Server

  3. Mysql FIND_IN_SET i where-satsen

  4. Hur får man sista dagen i förra veckan i sql?