| (位 OR) (Azure 串流分析)
在兩個整數值之間執行位邏輯 OR 運算,評估兩個運算運算式中的每個對應位。
語法
expression | expression
引數
expression
這是數據類型 bit 或 bigint 的任何有效運算式。 表達式會被視為位運算的二進位數位。
傳回型別
如果兩個輸入值都是 bit,則為 bit。
如果一或兩個輸入值都是 bigint,則為 bigint。
備註
|bitwise 運算子會在兩個運算式之間執行位邏輯 OR, 並針對這兩個運算式採用每個對應的位。 如果輸入表達式中目前位的其中一個或兩個位 () ,則結果中的位會設定為 1;否則,結果中的位會設定為 0。
例如,170 的二進位表示法是 0000 0000 1010 1010。 75 的二進位表示法是 0000 0000 0100 1011。 在這兩個值上執行位AND運算會產生二進位結果 0000 0000 1110 1011,也就是十進位 235。
(170 | 75)
0000 0000 1010 1010
0000 0000 0100 1011
-------------------
0000 0000 1110 1011
請注意,將 FLOAT 值轉換成 BIGINT,並在其上套用位運算元,通常不會傳回與將它轉換成 BIT 並套用相同運算元相同的結果:
- 第一個選項:170 |75.0 => 170 | 75 = 235
- 第二個選項:170 |75.0 => 170 | 1 = 171
如需轉換成 bit 的規則,請參閱 數據類型概觀 。
範例
使用一般輸入資料集:
WITH MyCTE AS (
SELECT
CAST(0 AS BIT) AS bit0,
CAST(1 AS BIT) AS bit1,
CAST(NULL AS BIT) AS bitN,
CAST(0 AS BIGINT) AS bigint0,
CAST(1 AS BIGINT) AS bigint1,
CAST(NULL AS BIGINT) AS bigintN
FROM input
)
在 位 元運算式上套用 運算子:
SELECT
bit0,
bit1,
bitN,
bit0 | bit0 AS OR00,
bit0 | bit1 AS OR01,
bit1 | bit0 AS OR10,
bit1 | bit1 AS OR11,
bitN | bit0 AS ORnull
INTO bitOR
FROM MyCTE
傳回:
bit0 | bit1 | bitN | OR00 | OR01 | OR10 | OR11 | ORnull |
---|---|---|---|---|---|---|---|
false | true | NULL | false | true | true | true | NULL |
在 bigint 運算式上套用 運算子:
SELECT
bigint0,
bigint1,
bigintN,
bigint0 | bigint0 AS OR00,
bigint0 | bigint1 AS OR01,
bigint1 | bigint0 AS OR10,
bigint1 | bigint1 AS OR11,
bigintN | bigint1 AS ORnull,
170 | 75 AS ORvalues
INTO bigintOR
FROM MyCTE
傳回:
bigint0 | bigint1 | bigintN | OR00 | OR01 | OR10 | OR11 | ORnull | ORvalues |
---|---|---|---|---|---|---|---|---|
0 | 1 | NULL | 0 | 1 | 1 | 1 | NULL | 235 |
驗證 輸出類型:
SELECT
GetType(bit0 | bit0) AS ORtype_bit,
GetType(bigint0 | bigint0) AS ORtype_bigint,
GetType(bit0 | bigint0) AS ORtype_mixed
INTO typesOR
FROM MyCTE
傳回:
ORtype_bit | ORtype_bigint | ORtype_mixed |
---|---|---|
位元 | BIGINT | BIGINT |