sql >> Database teknologi >  >> RDS >> PostgreSQL

Returner boolsk værdi som TRUE eller FALSE i Select (PostgreSQL/pgAdmin)

Hvis alt du vil vise er den bogstavelige TRUE eller FALSE , kan du bruge sagsudtalelserne, som du havde foreslået. Da PostgreSQL behandler TRUE , true , yes , on , y , t og 1 som sandt, ville jeg kontrollere, hvordan jeg ønsker, at output skal se ud.

Hvor klausul kan skrives som:

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

(Min anbefaling er den samme som PostgreSQL - brug sand)

Når du vælger, vil jeg, selvom der kan være tøven med at bruge case-sætningerne, stadig anbefale at du gør det for at have kontrol over din output-streng bogstaveligt.

Din forespørgsel ville se sådan ud:

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

SQLFiddle-eksempel: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. Selvrefererende begrænsning i MS SQL

  2. SQL QUERY Resultat arrangement problem

  3. Skalær UDF-inlining i SQL Server 2019

  4. PostgreSQL-forespørgsel WHERE-datoen er mere end 3 år gammel