2016-09-19 111 views
1

如何從Postgres中的字符串類型字段返回布爾值true/false而不是t/f。使用Postgres返回布爾值

SELECT (CASE WHEN status = 'active' THEN true ELSE false END)::boolean AS status 
FROM table; 
+0

只需使用'1'和'0'值。 – sagi

+0

@sagi:'1'和'0'不是布爾值,那些是數字 –

回答

3

tf是多麼psql打印布爾值,它不應該是很重要的。此外,您還可以簡化您的查詢,如下所示:

SELECT status = 'active' AS status FROM table; 

如果你真的想要得到文本列status,請執行下列操作:

SELECT (status = 'active')::text AS status FROM table; 

如果你想獲得一個號碼,而不是(0對於假,1爲真),這樣做:

SELECT (status = 'active')::integer AS status FROM table; 
+0

查詢的結果對我來說很重要,因爲我在一個庫中使用它在我的php代碼中,結果必須是真/假而沒有雙引號 –

+1

@Nawalel我沒有使用postgres的PHP綁定,但它應該正確處理第一個查詢。如果它不嘗試第三個,它將布爾變換爲0/1。 – redneb