表示したいのは、リテラルTRUE
またはFALSE
です。提案したようにcase文を使用できます。 PostgreSQLはTRUE
、true
、yes
、on
、y
、t
と1
を真として扱っているので、出力をどのようにしたいかを制御したいと思います。句は次のように記述することができ
:
select * from tablename where active
--or--
select * from tablename where active = true
(私の推薦は、PostgreSQLと同じである - 本当の使用)
を選択すると、case文を使用するにはためらいがあるかもしれないが、私は」出力文字列リテラルを制御できるようにすることをお勧めします。
あなたのクエリは次のようになります。
select
case active = TRUE then 'TRUE' else 'FALSE' end as active_status,
...other columns...
from tablename
where active = TRUE;
SQLFiddle例:(あなたが大文字のスペルを必要としない限り)text
への単純なキャストが仕事をする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 |
"t"/"f"または "TRUE"/"FALSE"として表示するかどうかは、単に表示上の問題です。ブール値はTRUEまたはFALSEの値を返しています(注記、引用符なし)。どのように表示されるのかは、そのソフトウェアに依存します。ここでは表示に関する問題を回避するために文字列値を返そうとしないことを強くお勧めします。 –
修正 - 表面的な問題です。私は明らかにするために私の質問のタイトルにpgAdminを追加しました。また、表示は特にpgAdmin SQLエディタにあります。だから私はpgAdminの次回リリースでの強化要求だと思っています - 独自のドキュメントとSQL標準と一貫性を持たせるために;-) –