^ (OR au niveau du bit exclusif) (Azure Stream Analytics)
Effectue une opération OR (XOR) 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 or logique au niveau du bit entre les deux expressions, en prenant chaque bit correspondant pour les deux expressions. Les bits dans le résultat sont définis sur 1 si l’un des bits (mais pas les deux) bits (pour le bit actuel en cours de résolution) dans les expressions d’entrée a la valeur 1 ; sinon, le bit dans le résultat est défini sur 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 XOR au niveau du bit sur ces deux valeurs produit le résultat binaire 0000 0000 1110 0001, qui est décimal 225.
(170 ^ 75)
0000 0000 1010 1010
0000 0000 0100 1011
-------------------
0000 0000 1110 0001
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 = 225
- Deuxième option : 170 ^ 75.0 => 170 ^ 1 = 171
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 XOR00,
bit0 ^ bit1 AS XOR01,
bit1 ^ bit0 AS XOR10,
bit1 ^ bit1 AS XOR11,
bitN ^ bit1 AS XORnull
INTO bitXOR
FROM MyCTE
Retourne les informations suivantes :
bit0 | bit1 | bitN | XOR00 | XOR01 | XOR10 | XOR11 | XORnull |
---|---|---|---|---|---|---|---|
false | true | NULL | false | true | true | false | NULL |
Application de l’opérateur sur les expressions bigint :
SELECT
bigint0,
bigint1,
bigintN,
bigint0 ^ bigint0 AS XOR00,
bigint0 ^ bigint1 AS XOR01,
bigint1 ^ bigint0 AS XOR10,
bigint1 ^ bigint1 AS XOR11,
bigintN ^ bigint1 AS XORnull,
170 ^ 75 AS XORvalues
INTO bigintXOR
FROM MyCTE
Retourne les informations suivantes :
bigint0 | bigint1 | bigintN | XOR00 | XOR01 | XOR10 | XOR11 | XORnull | Valeurs XOR |
---|---|---|---|---|---|---|---|---|
0 | 1 | NULL | 0 | 1 | 1 | 0 | NULL | 225 |
Validation des types de sortie :
SELECT
GetType(bit0 ^ bit0) AS XORtype_bit,
GetType(bigint0 ^ bigint0) AS XORtype_bigint,
GetType(bit0 ^ bigint0) AS XORtype_mixed
INTO typesXOR
FROM MyCTE
Retourne les informations suivantes :
XORtype_bit | XORtype_bigint | ORtype_mixed |
---|---|---|
bit | bigint | bigint |
Voir aussi
- Opérateurs au niveau du bit (Azure Stream Analytics)
- & (BITWISE AND) (Azure Stream Analytics)
- | (OR au niveau du bit) (Azure Stream Analytics)
- ~ (NOT au niveau du bit)(Azure Stream Analytics)
- Vue d’ensemble des types de données (Azure Stream Analytics)
- Fonctions de conversion (Azure Stream Analytics)
- Fonctions intégrées (Azure Stream Analytics)