PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Връщане на булева стойност като TRUE или FALSE в Select (PostgreSQL/pgAdmin)

Ако всичко, което искате да покажете, е литерала TRUE или FALSE , можете да използвате операторите за случай, както сте предложили. Тъй като PostgreSQL третира TRUE , true , yes , on , y , t и 1 като вярно, аз бих контролирал как бих искал да изглежда изходът.

Където клаузата може да бъде написана като:

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

(Моята препоръка е същата като PostgreSQL - използвайте true)

Когато избирате, въпреки че може да има колебание да използвате операторите case, все пак бих препоръчал да направите това, за да имате контрол върху литерала на изходния низ.

Вашата заявка ще изглежда така:

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

Пример за 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Стойност по подразбиране за колона postgres функция с аргумент

  2. Преглед на pgModeler за PostgreSQL

  3. Имена на таблици в Postgresql и unicode:Защо не мога да избера името на таблицата от информационната схема, когато съдържа unicode знаци?

  4. Изберете записи въз основа на последната дата

  5. Целина и транзакция.atomic