本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
BIT_ 或函數
該 BIT _OR 函數對單個整數列或表達式中的所有值運行按位或運算。此函數會彙總每一個二進位值 (對應於表達式中的每一個整數值) 的每一個位元。
例如,假設資料表有一欄包含四個整數值:3、7、10 及 22。這些整數以二進位格式表示如下:
Integer | 二進位值 |
---|---|
3 | 11 |
7 | 111 |
10 | 1010 |
22 | 10110 |
如果您將 BIT _OR 函數套用至整數值集,則作業會尋找在每個位置找到 a 1
的任何值。在此案例中,至少一個值的最後五個位置有 1
,於是產生二進位結果 00011111
;因此,函數傳回 31
(亦即 16 + 8 + 4 + 2 + 1
)。
語法
BIT_OR ( [DISTINCT | ALL] expression )
引數
- expression
-
函數運算的目標欄或表達式。此運算式必須具有INTINT2、或INT8資料類型。函數會傳回對等INTINT2、或INT8資料類型。
- DISTINCT | ALL
-
使用引數時DISTINCT,函數會在計算結果之前消除指定運算式的所有重複值。使用引數時ALL,函數會保留所有重複的值。ALL為預設值。如需詳細資訊,請參閱DISTINCT支持按位聚合。
範例
下列查詢會將 BIT _OR 函式套用至名為的LIKES資料表中的資料行,USERLIKES並依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
)。