BIT_OR 函數 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

BIT_OR 函數

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)。