Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » Systemobjekte » Systemprozeduren » Alphabetische Liste der Systemprozeduren

 

sa_get_bits-Systemprozedur

Nimmt eine Bitzeichenfolge und gibt eine Zeile für jedes Bit in der Zeichenfolge zurück. Standardmäßig werden nur Zeilen mit einem Bitwert von "1" zurückgegeben.

Syntax
sa_get_bits( Bitzeichenfolge [ , Nur_On_Bits ] )
Argumente
  • Bitzeichenfolge   Mit diesem LONG VARBIT-Parameter können Sie die Bitzeichenfolge angeben, aus der die Bits abgerufen werden. Wenn der Bitzeichenfolge-Parameter NULL ist, werden keine Zeilen zurückgegeben.

  • Nur_On_Bits   Verwenden Sie dieses optionale BIT, um anzugeben, ob nur Zeilen mit On-Bits (Bits mit dem Wert "1") zurückgegeben werden. Geben Sie "1" (Standardwert) an, um nur Zeilen mit On-Bits zurückzugeben, und "0", um Zeilen für alle Bits in der Bitzeichenfolge zurückzugeben.

Ergebnismenge
Spalte Datentyp Beschreibung
bitnum UNSIGNED INT Die Position des von dieser Zeile beschriebenen Bits. Das erste Bit in der Bitzeichenfolge z.B. hat bitnum 1.
bit_val BIT Der Wert des Bits an der Position bitnum. Wenn Nur_on_Bits auf "1" gesetzt ist, ist dieser Wert immer "1".
Bemerkungen

Die Systemprozedur sa_get_bits dekodiert eine Bitzeichenfolge und gibt eine Zeile für jedes Bit in der Bitzeichenfolge zurück, die den Wert des Bits angibt. Wenn Nur_On_Bits auf "1" (Standardwert) gesetzt ist, werden nur Zeilen zurückgegeben, die On-Bits entsprechen. Eine Optimierung ermöglicht in diesem Fall eine effiziente Verarbeitung bei langen Bitzeichenfolgen mit wenigen On-Bits. Wenn Nur_On_Bits auf "0" gesetzt ist, wird für jedes Bit in der Bitzeichenfolge eine Zeile zurückgegeben.

Beispiel: Die Anweisung CALL sa_get_bits( '1010' ) gibt die folgende Ergebnismenge zurück, die On-Bits auf Position 1 und 3 der Bitzeichenfolge anzeigt.

bitnum bit_val
1 1
3 1

Mit der Systemprozedur sa_get_bits können Sie eine Bitzeichenfolge in eine Relation konvertieren. Diese kann verwendet werden, um eine Bitzeichenfolge mit einer Tabelle zu verknüpfen oder um eine Bitzeichenfolge als Ergebnismenge und nicht als einen einzelnen Binärwert abzurufen. Es kann effizienter sein, eine Bitzeichenfolge als Ergebnismenge abzurufen, wenn es eine große Anzahl von 0-Bits gibt, da diese nicht abgerufen werden müssen.

Berechtigungen

Keine

Nebenwirkungen

Keine

Siehe auch
Beispiele

Das folgende Beispiel zeigt, wie Sie die Systemprozedur sa_get_bits verwenden, um eine Reihe von Ganzzahlen als Bitzeichenfolge zu kodieren und um sie anschließend für die Verwendung in einem Join zu dekodieren:

CREATE VARIABLE @s_depts LONG VARBIT;

SELECT  SET_BITS( DepartmentID )
 INTO @s_depts
 FROM Departments
 WHERE DepartmentName like 'S%';

SELECT *
 FROM sa_get_bits( @s_depts ) B 
  JOIN Departments D ON B.bitnum = D.DepartmentID;