| (Bitweises OR) (Transact-SQL)
Führt eine bitweise logische OR-Operation zwischen zwei gegebenen ganzzahligen Werten durch, die innerhalb von Transact-SQL-Anweisungen in binäre Ausdrücke umgewandelt wurden.
Transact-SQL-Syntaxkonventionen
Syntax
expression | expression
Argumente
expression
Jeder gültige Ausdruck von einem Datentyp aus der ganzzahligen Datentypkategorie oder die Datentypen bit, binary oder varbinary. expression wird für die bitweise Operation als binäre Zahl behandelt.Hinweis: Bei einer bitweisen Operation kann nur ein expression vom Datentyp binary oder varbinary sein.
Hinweise
Mit dem bitweisen |-Operator wird zwischen zwei Ausdrücken ein bitweises logisches OR ausgeführt, indem die jeweils entsprechenden Bits der beiden Ausdrücke verarbeitet werden. Ein Ergebnisbit wird dann auf den Wert 1 festgelegt, wenn mindestens eines der Bits (für das aktuell aufzulösende Bit) der Eingabeausdrücke den Wert 1 aufweist. Falls keines der Bits in den Eingabeausdrücken den Wert 1 hat, wird das entsprechende Bit im Ergebnis auf 0 festgelegt.
Wenn der linke und der rechte Ausdruck unterschiedliche ganzzahlige Datentypen aufweisen (beispielsweise ist der linke expression vom smallint-Datentyp und der rechte expression vom int-Datentyp), wird das Argument mit dem kleineren Datentyp in den größeren Datentyp konvertiert. In diesem Beispiel wird smallintexpression in den int-Typ konvertiert.
Ergebnistypen
Gibt einen Wert vom int-Datentyp zurück, wenn die Eingabewerte vom int-Datentyp sind, einen smallint-Wert bei smallint-Eingabewerten oder einen tinyint-Wert, wenn die Eingabewerte vom tinyint-Datentyp sind.
Beispiele
Das folgende Beispiel erstellt zum Anzeigen der ursprünglichen Werte eine Tabelle mit Werten vom int-Datentyp und gibt der Tabelle die Form einer einzelnen Zeile.
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
Die folgende Abfrage führt ein bitweises OR zwischen den Spalten a_int_value und b_int_value durch.
USE tempdb;
GO
SELECT a_int_value | b_int_value
FROM bitwise;
GO
Dies ist das Resultset.
-----------
235
(1 row(s) affected)
Die binäre Darstellung von 170 (a_int_value, unten mit A
bezeichnet) ist 0000 0000 1010 1010
. Die binäre Darstellung von 75 (b_int_value, unten mit B
bezeichnet) ist 0000 0000 0100 1011
. Die Anwendung einer bitweisen OR-Operation auf diese beiden Werte erzeugt das binäre Ergebnis 0000 0000 1110 1011
, was dem dezimalen Wert 235 entspricht.
(A | B)
0000 0000 1010 1010
0000 0000 0100 1011
-------------------
0000 0000 1110 1011
Siehe auch
Verweis
Andere Ressourcen
Bitweise Operatoren (Datenbankmodul)