Partager via


& (AND au niveau du bit) (Azure Stream Analytics)

Effectue une opération AND logique au niveau du bit entre deux valeurs entières, en évaluant chaque bit correspondant des deux expressions.

Syntaxe

expression & expression

Arguments

expression

Expression valide du type de données bit ou bigint. L’expression est traitée comme un nombre binaire pour l’opération au niveau du bit.

Types de retour

bit si les deux valeurs d’entrée sont bit.

bigint si une ou les deux valeurs d’entrée sont bigint.

Remarques

L’opérateur & au niveau du bit effectue un and logique au niveau du bit entre les deux expressions, en prenant chaque bit correspondant pour les deux expressions. Dans le résultat, les bits prennent la valeur 1 si et seulement si les deux bits correspondants (pour la position en cours d'évaluation) dans les deux expressions d'entrées ont une valeur de 1 ; si tel n'est pas le cas, le bit résultant est mis à 0.

À titre d’illustration, la représentation binaire de 170 est 0000 0000 1010 1010. La représentation binaire de 75 est 0000 0000 0100 1011. L’exécution de l’opération AND au niveau du bit sur ces deux valeurs produit le résultat binaire 0000 0000 0000 1010, qui est décimal 10.

(170 & 75)
0000 0000 1010 1010
0000 0000 0100 1011
-------------------
0000 0000 0000 1010

Il est à noter que la conversion d’une valeur FLOAT sur BIGINT et l’application d’un opérateur au niveau du bit ne retournent souvent pas le même résultat que la conversion en BIT et l’application du même opérateur :

  • Première option : 170 & 75.0 => 170 & 75 = 10
  • Deuxième option : 170 & 75.0 => 170 & 1 = 0

Pour connaître les règles de conversion en bit, consultez Vue d’ensemble des types de données.

Exemples

Avec un jeu de données d’entrée commun :

WITH MyCTE AS (
	SELECT
		CAST(0 AS BIT) AS bit0,
		CAST(1 AS BIT) AS bit1,
		CAST(NULL AS BIT) AS bitN,
		CAST(0 AS BIGINT) AS bigint0,
		CAST(1 AS BIGINT) AS bigint1,
		CAST(NULL AS BIGINT) AS bigintN
	FROM input
)

Application de l’opérateur sur les expressions bit :

SELECT
	bit0,
	bit1,
	bitN,
	bit0 & bit0 AS AND00,
	bit0 & bit1 AS AND01,
	bit1 & bit0 AS AND10,
	bit1 & bit1 AS AND11,
	bitN & bit0 AS ANDnull
INTO bitAND
FROM MyCTE

Retourne les informations suivantes :

bit0 bit1 bitN AND00 AND01 AND10 AND11 ANDnull
false true NULL false false false true NULL

Application de l’opérateur sur les expressions bigint :

SELECT
	bigint0,
	bigint1,
	bigintN,
	bigint0 & bigint0 AS AND00,
	bigint0 & bigint1 AS AND01,
	bigint1 & bigint0 AS AND10,
	bigint1 & bigint1 AS AND11,
	bigintN & bigint1 AS ANDnull,
    170 & 75 AS ANDvalues
INTO bigintAND
FROM MyCTE

Retourne les informations suivantes :

bigint0 bigint1 bigintN AND00 AND01 AND10 AND11 ANDnull VALEURS AND
0 1 NULL 0 0 0 1 NULL 10

Validation des types de sortie :

SELECT
    GetType(bit0 & bit0) AS ANDtype_bit,
    GetType(bigint0 & bigint0) AS ANDtype_bigint,
    GetType(bit0 & bigint0) AS ANDtype_mixed
INTO typesAND
FROM MyCTE

Retourne les informations suivantes :

ANDtype_bit ANDtype_bigint ANDtype_mixed
bit bigint bigint

Voir aussi