Partager via


| (OR au niveau du bit) (Transact-SQL)

Exécute une opération logique OR au niveau du bit entre deux valeurs entières spécifiées, traduites en expressions binaires dans les instructions Transact-SQL.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

expression | expression

Arguments

  • expression
    Toute expression valide de la catégorie des types de données entiers ou des types de données bit, binary ou varbinary. expression est traitée comme un nombre binaire pour l'opération au niveau du bit.

    [!REMARQUE]

    Un seul argument expression peut être du type binary ou du type varbinary dans une opération au niveau du bit.

Types de résultats

Retourne un résultat de type int si les valeurs d'entrée sont de type int, un résultat de type smallint si les valeurs d'entrée sont de type smallint ou un résultat de type tinyint si les valeurs d'entrée sont de type tinyint.

Notes

L'opérateur | au niveau du bit exécute un OR logique au niveau du bit entre les deux expressions, évaluant chaque bit se correspondant dans les deux expressions. Dans le résultat, les bits prennent la valeur 1 si l'un des bits ou les deux (pour la position en cours d'évaluation) des expressions d'entrées ont la valeur 1 ; si aucun des deux bits des deux expressions d'entrée ne vaut 1, le bit du résultat est mis à 0.

Si les expressions de droite et de gauche ont des types de données entiers différents (par exemple, l'expression de gauche est de type smallint et l'expression de droite est de type int), l'argument du type de données le plus petit est converti dans le type de données le plus grand. Dans ce cas, l'expressionsmallint est convertie en int.

Exemples

L'exemple suivant crée une table avec des types de données int pour l'affichage des valeurs d'origine, et présente la table en une seule ligne.

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

Cette requête exécute l'opération OR au niveau du bit sur les colonnes a_int_value et b_int_value.

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

Voici l'ensemble des résultats.

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

(1 row(s) affected)

La représentation binaire de 170 (a_int_value ou A, ci-dessous) est 0000 0000 1010 1010. La représentation binaire de 75 (b_int_value ou B, ci-dessous) est 0000 0000 0100 1011. L'exécution de l'opération OR au niveau du bit entre ces deux valeurs produit le résultat binaire 0000 0000 1110 1011, c'est-à-dire 235 en décimal.

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