

 Amazon Redshift ne prendra plus en charge la création de nouveaux UDFs Python à partir du patch 198. Les fonctions Python définies par l’utilisateur existantes continueront de fonctionner normalement jusqu’au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Fonction BIT\_AND
<a name="r_BIT_AND"></a>

La fonction BIT\_AND exécute des opérations AND bit par bit sur toutes les valeurs d’une colonne ou expression d’entiers. Ces fonctions regroupent chaque bit de chaque valeur binaire correspondant à chaque valeur de nombre entier de l’expression.

La fonction BIT\_AND renvoie un résultat de `0` si aucun des bits n’est défini sur 1 dans l’ensemble des valeurs. Si un ou plusieurs bits est défini sur 1 dans toutes les valeurs, la fonction renvoie une valeur de nombre entier. Ce nombre entier est le chiffre qui correspond à la valeur binaire de ces bits.

Par exemple, une table contient quatre valeurs de nombre entier dans une colonne : 3, 7, 10 et 22. Ces nombres entiers sont représentés sous la forme binaire suivante :


| Entier | Valeur binaire | 
| --- | --- | 
| 3 |  11 | 
| 7 | 111 | 
| 10 | 1010 | 
| 22 | 10110 | 

Une opération BIT\_AND sur cet ensemble de données détecte que tous les bits sont définis sur `1` à l’avant-dernière position uniquement. Le résultat est une valeur binaire de `00000010`, qui représente la valeur d’entier `2`. Par conséquent, la fonction BIT\_AND renvoie `2`.

## Syntaxe
<a name="r_BIT_AND-synopsis"></a>

```
BIT_AND ( [DISTINCT | ALL] expression )
```

## Arguments
<a name="r_BIT_AND-arguments"></a>

 *expression*   
Colonne cible ou expression sur laquelle la fonction opère. Cette expression doit comporter un type de données INT, INT2 ou INT8. La fonction renvoie un type de données INT, INT2 ou INT8 équivalent.

DISTINCT \| ALL  
Avec l’argument DISTINCT, la fonction supprime toutes les valeurs en double de l’expression spécifiée avant de calculer le résultat. Avec l’argument ALL, la fonction conserve toutes les valeurs en double. La valeur par défaut est ALL. Pour plus d'informations, consultez [Prise en charge de la fonction DISTINCT pour les agrégations bit par bit](c_bitwise_aggregate_functions.md#distinct-support-for-bit-wise-aggregations).

## Exemples
<a name="r_bit_end_example"></a>

Étant donné que des informations importantes sur l’entreprise sont stockées dans les colonnes de nombres entiers, vous pouvez utiliser des fonctions bit par bit pour extraire et regrouper ces informations. La requête suivante applique la fonction BIT\_AND à la colonne LIKES dans une table appelée USERLIKES et regroupe les résultats en fonction de la colonne CITY. 

```
select city, bit_and(likes) from userlikes group by city 
order by city;
city          | bit_and
--------------+---------
Los Angeles   |       0
Sacramento    |       0
San Francisco |       0
San Jose      |      64
Santa Barbara |     192
(5 rows)
```

Vous pouvez interpréter ces résultats comme suit :
+ La valeur de nombre entier `192` de Santa Barbara se traduit par la valeur binaire `11000000`. Autrement dit, tous les utilisateurs de cette ville aiment le sport et le théâtre, mais tous les utilisateurs n’aiment pas un tout autre type d’événement.
+ Le nombre entier `64` se traduit par `01000000`. Ainsi, pour les utilisateurs de San Jose, le seul type d’événement qu’ils aiment tous est le théâtre.
+ Les valeurs de `0` des trois autres villes indiquent qu’aucun « J’aime » n’est partagé par tous les utilisateurs de ces villes.