Rubrik: Datenbanken · Sonstiges | VB-Versionen: VB4, VB5, VB6 | 16.05.02 |
Binäre Algebra in SQL-Anweisungen Dieser Tipp zeigt, wie sich mittels Mathematik binäre Algebra in SQL-Abfragen nutzen lassen. | ||
Autor: Marcel Brökelschen | Bewertung: | Views: 16.308 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Wenn man in Datenbanken mehrere Ja/Nein-Informationen speichern muss, bietet es sich an diese Informationen in einem Feld zu speichern und zwar durch das gezielte Setzen einzelner Bits.
Beispiel:
Mitarbeiter-Datenbank Feld: Status 1. Bit gesetzt = Angestellter sonst Arbeiter 2. Bit gesetzt = Meister sonst --- 3. Bit gesetzt = Rentner sonst noch aktiv .. ..
Feld-Inhalt = 3. Hierbeit handelt es sich um einen Angestellten, der Meister und noch nichz in Rente ist....
Feld-Inhalt = 5. Hierbeit handelt es sich um einen Angestellten, der bereits in Rente ist...."
Auf diese Weise lassen sich je nach Datentyp 8, 16 oder gar 32 Ja/Nein - Infos in einem Datenfeld unterbringen.
Eine Abfrage in Visual Basic ist sehr leicht.
If (rsMitarbeiter!Status AND 2) = 2 Then _ MSGBOX "Ist Meister"
In SQL kann man dies aber nicht nutzen. Hier muss man einen Umweg über die Mathematik gehen.
Eine Abfrage, die alle Meister einer Firma ausgibt, würde dann so lauten...
SELECT * FROM Mitarbeiter WHERE _ INT(Status / 2 ^ 1) MOD 2 = 1
oder generell
SELECT * FROM Mitarbeiter WHERE _ INT(Status / 2 ^ e) MOD 2 = 1
wobei e die nullbasierte Bit-Position ist, die abgefragt werden soll. Beim 3. Bit also 2