| (OR bit per bit) (Transact-SQL)

Esegue un'operazione con OR logico bit per bit tra i due valori interi specificati convertiti in espressioni binarie in istruzioni Transact-SQL.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

expression | expression

Argomenti

  • expression
    Qualsiasi espressione valida della categoria dei tipi di dati integer oppure dei tipi di dati bit, binary o varbinary. expression viene considerato un numero binario per l'operazione bit per bit.

    [!NOTA]

    In un'operazione bit per bit solo un valore di expression può essere di tipo binary o varbinary.

Tipi restituiti

Restituisce un valore di tipo int se i valori di input sono di tipo int, un valore di tipo smallint se i valori di input sono di tipo smallint oppure un valore di tipo tinyint se i valori di input sono di tipo tinyint.

Osservazioni

L'operatore | esegue un'operazione con OR logico bit per bit tra due espressioni, considerando tutti i bit corrispondenti in entrambe le espressioni. I bit nel risultato sono impostati su 1 se il valore di uno o di entrambi i bit (per il bit in fase di risoluzione) delle espressioni di input è uguale a 1. Se nessuno dei bit è uguale a 1, il bit del risultato è impostato su 0.

Se alle due espressioni è applicato un tipo di dati integer diverso, ad esempio l'espressione di sinistra specificata da expression è di tipo smallint e quella di destra specificata da expression è di tipo int, l'argomento del tipo di dati di livello inferiore viene convertito nel tipo di dati di livello superiore. Nell'esempio seguente l'espressione specificata da expression di tipo smallint viene convertita nel tipo di dati int.

Esempi

Nell'esempio seguente viene creata una tabella con un tipo di dati int per la visualizzazione dei valori originali. La tabella viene quindi inserita in un'unica riga.

USE tempdb;
GO
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES 
      WHERE TABLE_NAME = 'bitwise')
   DROP TABLE bitwise;
GO
CREATE TABLE bitwise
( 
 a_int_value int NOT NULL,
b_int_value int NOT NULL
);
GO
INSERT bitwise VALUES (170, 75);
GO

La query seguente esegue l'operazione con OR logico bit per bit nelle colonne a_int_value e b_int_value.

USE tempdb;
GO
SELECT a_int_value | b_int_value
FROM bitwise;
GO

Set di risultati:

----------- 
235         

(1 row(s) affected)

La rappresentazione binaria di 170 (a_int_value o A nell'esempio riportato di seguito) è 0000 0000 1010 1010. La rappresentazione binaria di 75 (b_int_value o B nell'esempio riportato di seguito) è 0000 0000 0100 1011. L'operazione con OR logico bit per bit eseguita su questi due valori restituisce il risultato binario 0000 0000 1110 1011, ovvero 235 decimale.

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