本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
BIT_OR 函數會對單一整數欄或表達式中的所有值執行位元 OR 操作。此函數會彙總每一個二進位值 (對應於表達式中的每一個整數值) 的每一個位元。
例如,假設資料表有一欄包含四個整數值:3、7、10 及 22。這些整數以二進位格式表示如下:
Integer | 二進位值 |
---|---|
3 | 11 |
7 | 111 |
10 | 1010 |
22 | 10110 |
如果您將 BIT_OR 函數套用至整數值集,則作業會尋找在每個位置中找到 1
的任何值。在此案例中,至少一個值的最後五個位置有 1
,於是產生二進位結果 00011111
;因此,函數傳回 31
(亦即 16 + 8 + 4 + 2 + 1
)。
語法
BIT_OR ( [DISTINCT | ALL] expression )
引數
- expression
-
函數運算的目標欄或表達式。此表達式必須為 INT、INT2 或 INT8 資料類型。此函數會傳回同等的 INT、INT2 或 INT8 資料類型。
- DISTINCT | ALL
-
如果指定引數 DISTINCT,則函數在計算結果之前,將消除指定之表達式的所有重複值。如果指定引數 ALL,則函數會保留所有重複值。ALL 為預設值。如需詳細資訊,請參閱位元彙整的 DISTINCT 支援。
範例
下列查詢將 BIT_OR 函數套用至名為 USERLIKES 之資料表中的 LIKES 欄,並依 CITY 欄將結果分組。
select city, bit_or(likes) from userlikes group by city
order by city;
city | bit_or
--------------+--------
Los Angeles | 127
Sacramento | 255
San Francisco | 255
San Jose | 255
Santa Barbara | 255
(5 rows)
對於列出的其中四個城市,至少有一個使用者喜歡所有活動類型 (255=11111111
)。以 Los Angeles 來說,至少有一個使用者喜歡所有活動類型,但運動除外 (127=01111111
)。