2016-09-19 4 views
1

Postgres의 문자열 유형 필드에서 t/f 대신 true/false 부울을 반환하는 방법.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

tfpsql 인쇄 부울, 그것은 중요하지 않아야 얼마나입니다. 다음과 같이 또한, 당신이 당신의 쿼리를 단순화 할 수 있습니다 : 다음을 수행

당신이 정말로 열 status 텍스트를 얻고 싶다면
SELECT status = 'active' AS status FROM table; 

:

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

대신 숫자를 얻고 싶다면

(0 false의 경우 1, true의 경우 1)이 작업을 수행하십시오.

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

입니다. 라이브러리의 PHP 코드에서 사용하기 때문에 쿼리의 결과가 중요합니다. 결과는 true/false 여야합니다. double quotes –

+1

@Nawalel postgres의 PHP 바인딩을 사용하지 않았지만 첫 번째 쿼리를 올바르게 처리해야합니다. boolean을 0/1로 변환하는 세 번째 시도를 시도하지 않은 경우. – redneb