2016-11-04 2 views
2

レッツであれば、私は次の表を持っていると言う:集計ブール値ソース列のいずれかが真の

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

上記の表から、私がしたい:

select rows from id = 1,2; 

なるはずです次のようになります。

定義されたidの中のいずれかの行が特定の列に対してtrueの場合、結果はtrueとみなされます。

+0

すべての列とすべての行には少なくとも1つの真理があるため、なぜテーブル全体を戻すことを期待していないのか分かりません。あなたの論理を明確にすることはできますか? –

答えて

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になります。

関連する問題