2016-11-04 3 views
2

하자 나는 다음과 같은 테이블이 있다고 가정 :집계 부울 값이

select rows from id = 1,2; 

결과해야한다 : 위의 표에서

id column_a column_b column_c 
1  t   f   t 
2  t   f   f 
3  f   t   f 

을, 내가 원하는 수 :

column_a column_b column_c 
t   f   t 

을 정의 된 ID 중 임의의 행은 우리가 사실로 결과를 가정 특정 컬럼에 대한 사실이있는 경우.

+0

모든 열과 모든 행에는 적어도 하나의 참이 있습니다. 그래서 왜 전체 테이블을 기대하지 않을지 모르겠군요. 논리를 명확히 할 수 있습니까? –

답변

3

집계 함수 bool_or()을 사용하십시오.

SELECT bool_or(column_a) AS column_a 
    , bool_or(column_b) AS column_b 
    , bool_or(column_c) AS column_c 
FROM tbl 
WHERE id IN (1,2); 

수동 : 적어도 하나 개의 입력 값이 true 인 경우

사실,

+0

당신은 위대하다! 함수에 대해 몰랐습니다. bool_or –

+0

이러한 column_a, column_b, column_c 값은 [t, f, t]와 같은 배열에 저장 될 수 있습니까? –

+0

@SyedAsadAbbasZaidi : 물론입니다. 질문으로 질문하십시오. 코멘트는 장소가 아닙니다. –

0

bool_or(...), 그렇지 않은 경우는 false는 확실히 여기 당신의 가장 친한 친구입니다. bool_or에 공급되는 모든 값이 null을 경우, 결과는 너무 null 될 것입니다 : 언급하지 않는 수동 기억

한 가지.

관련 문제