Documentation PostgreSQL 8.1.23 > Langage SQL > Fonctions et opérateurs > Fonctions et opérateurs sur les chaînes de bits | |
Fonctions et opérateurs de chaînes binaires | Correspondance de modèles |
Cette section décrit les fonctions et opérateurs pour examiner et manipuler les chaînes de bits, qui sont des valeurs du type bit et bit varying. En dehors des opérateurs de comparaison habituels, les opérateurs montrés dans le Tableau 9.10, « Opérateurs sur les chaînes de bits » peuvent être utilisés. Les opérandes de chaînes de bits &, | et # doivent être de même longueur. Lors d'un décalage de bits, la longueur originale de la chaîne est préservée comme le montrent les exemples.
Tableau 9.10. Opérateurs sur les chaînes de bits
Opérateur | Description | Exemple | Résultat |
---|---|---|---|
|| | concaténation | B'10001' || B'011' | 10001011 |
& | AND bit à bit | B'10001' & B'01101' | 00001 |
| | OR bit à bit | B'10001' | B'01101' | 11101 |
# | XOR bit à bit | B'10001' # B'01101' | 11100 |
~ | NOT bit à bit | ~ B'10001' | 01110 |
<< | décalage gauche bit à bit | B'10001' << 3 | 01000 |
>> | décalage droit bit à bit | B'10001' >> 2 | 00100 |
Les fonctions SQL suivantes fonctionnent sur les chaînes de bits ainsi que sur les chaînes de caractères : length, bit_length, octet_length, position, substring.
De plus, il est possible de convertir des valeurs intégrales en ou à partir du type bit. Quelque exemples :
44::bit(10) 0000101100 44::bit(3) 100 cast(-44 as bit(12)) 111111010100 '1110'::bit(4)::integer 14
Notez que la conversion de « bit » signifie la conversion de bit(1) et, du coup, il délivrera seulement le bit de poids faible de l'entier.
Avant PostgreSQL™ 8.0, convertir une entier en bit(n) aurait copié les n bits les plus à gauche de l'entier alors que, maintenant, il copie les n bits les plus à droite. De plus, convertir un entier en une chaîne de bits d'une largeur plus grande que l'entier lui-même changera le signe côté gauche.