共用方式為


| (位元 OR) (Transact-SQL)

適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Platform System (PDW) SQL 分析端點Microsoft網狀架構倉儲中的 Microsoft Fabric SQL 資料庫Microsoft網狀架構

在 Transact-SQL 陳述式中轉換成二進位運算式時,執行兩個指定整數值之間的位元邏輯 OR 運算。

Transact-SQL 語法慣例

語法

expression | expression  

引數

expression
這是整數資料類型類別目錄或是 bitbinaryvarbinary 資料類型的任何有效運算式expression 會被視為適用於位元運算的二進位數字。

注意

在位元運算中,只能有一個 expressionbinaryvarbinary 資料類型。

結果類型

如果輸入值是 int,便傳回 int,如果輸入值是 smallint,便傳回 smallint,或者如果輸入值是 tinyint,便傳回 tinyint

備註

位元 | 運算子會在兩個運算式之間執行位元邏輯 OR 運算,兩個運算式各有一個對應的位元。 如果輸入運算式的兩個位元或其中一個位元 (針對目前所解析的位元) 的值是 1,結果中的位元都會設為 1;如果輸入運算式中的兩個位元都不是 1,結果中的位元便設為 0。

如果左右運算式的整數資料類型不同 (例如,左邊的 expressionsmallint,而右邊的 expressionint),就會將較小資料類型的引數轉換為較大的資料類型。 在此範例中,會將 smallintexpression 轉換為 int

範例

下列範例會建立一個含 int 資料類型的資料表來顯示原始值,並將資料表放入單一資料列中。

CREATE TABLE bitwise (  
  a_int_value INT NOT NULL,  
  b_int_value INT NOT NULL);  
GO  
INSERT bitwise VALUES (170, 75);  
GO  

下列查詢會在 a_int_valueb_int_value 資料行上執行位元 OR 運算。

SELECT a_int_value | b_int_value  
FROM bitwise;  
GO  

結果集如下所示。

-----------   
235           
  
(1 row(s) affected)  

170 (a_int_value 或下面的 A) 的二進位表示法是 0000 0000 1010 1010。 75 (b_int_value 或下面的 B) 的二進位表示法是 0000 0000 0100 1011。 對這兩個值執行位元 OR 運算,會產生二進位結果 0000 0000 1110 1011,也就是十進位的 235。

(A | B)  
0000 0000 1010 1010  
0000 0000 0100 1011  
-------------------  
0000 0000 1110 1011  

另請參閱

運算子 (Transact-SQL)
位元運算子 (Transact-SQL)
|= (位元 OR 指派) (Transact-SQL)
複合運算子 (Transact-SQL)