Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Die BIT_OR-Funktion führt bitweise OR-Operationen für alle Werte in einer einzigen Ganzzahlspalte bzw. in einem einzigen Ganzzahlausdruck aus. Diese Funktion aggregiert jedes Bit jedes Binärwerts, das jedem Ganzzahlwert im Ausdruck entspricht.
Nehmen wir an, dass eine Tabelle vier Ganzzahlwerte in einer Spalte enthält: 3, 7, 10 und 22. Diese Ganzzahlen werden wie folgt in binärer Form dargestellt.
Ganzzahl | Binärwert |
---|---|
3 | 11 |
7 | 111 |
10 | 1010 |
22 | 10110 |
Wenn Sie auf den Satz von Ganzzahlwerten die Funktion BIT_OR anwenden, sucht die Operation nach jedem Wert, der in jeder Position eine 1
enthält. In diesem Fall ist 1
in den letzten fünf Positionen mindestens eines der Werte enthalten, was zu einem Binärergebnis von 00011111
führt. Daher gibt die Funktion 31
(oder 16 + 8 + 4 + 2 + 1
) zurück.
Syntax
BIT_OR ( [DISTINCT | ALL] expression )
Argumente
- Ausdruck
-
Die Zielspalte oder der Ausdruck, für die/den die Funktion ausgeführt wird. Dieser Ausdruck muss den INT8 Datentyp INT INT2,, oder haben. Die Funktion gibt einen äquivalenten INT- INT2, oder INT8 Datentyp zurück.
- DISTINCT | ALL
-
Mit dem Argument DISTINCT beseitigt die Funktion alle duplizierten Werte für den angegebenen Ausdruck, bevor das Ergebnis berechnet wird. Mit dem Argument ALL behält die Funktion alle duplizierten Werte. ALL ist das Standardargument. Weitere Informationen finden Sie unter DISTINCT-Unterstützung für bitweise Aggregationen.
Beispiel
Die folgende Abfrage wendet die Funktion BIT_OR auf die Spalte LIKES in einer Tabelle namens USERLIKES an und gruppiert die Ergebnisse anhand der Spalte CITY.
select city, bit_or(likes) from userlikes group by city
order by city;
city | bit_or
--------------+--------
Los Angeles | 127
Sacramento | 255
San Francisco | 255
San Jose | 255
Santa Barbara | 255
(5 rows)
Mindestens einem Benutzer in den vier aufgelisteten Städten gefallen alle Arten von Veranstaltungen (255=11111111
). Mindestens einem Benutzer in Los Angeles gefallen alle Arten von Veranstaltungen außer Sport (127=01111111
).