Partager via


~ (NOT au niveau du bit) (Azure Stream Analytics)

Exécute une opération logique NOT au niveau du bit sur une valeur entière.

Syntaxe

~ expression

Arguments

expression

Expression valide des types 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 la valeur d’entrée est bit.

bigint si la valeur d’entrée est bigint.

Remarques

L’opérateur ~ au niveau du bit effectue un not logique au niveau du bit sur l’expression, en prenant chaque bit à son tour. Si l'expression a la valeur 0, les bits du jeu de résultats prennent la valeur 1 ; sinon, le bit résultant est mis à 0. En d'autres termes, les uns sont changés en zéros et les zéros sont changés en uns.

À titre d’illustration, la représentation binaire de 170 est 0000 0000 1010 1010. L’exécution de l’opération NOT au niveau du bit sur cette valeur produit le résultat binaire 1111 1111 0101 0101, qui est décimal -171.

(~170)
0000 0000 1010 1010
-------------------
1111 1111 0101 0101

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 de bits :

SELECT
	bit0,
	bit1,
	bitN,
	~ bit0 AS NOT0,
	~ bit1 AS NOT1,
	~ bitN AS NOTnull
INTO bitNOT
FROM MyCTE

Retourne les informations suivantes :

bit0 bit1 bitN NOT0 NOT1 NOTnull
false true NULL true false NULL

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

SELECT
	bigint0,
	bigint1,
	bigintN,
	~ bigint0 AS NOT0,
	~ bigint1 AS NOT1,
	~ bigintN AS NOTnull,
	~ 170 AS NOT170
INTO bigintNOT
FROM MyCTE

Retourne les informations suivantes :

bit0 bit1 bitN NOT0 NOT1 NOTnull NOT170
0 1 NULL -1 -2 NULL -171

Validation des types de sortie :

SELECT
	GetType(~ bit0) AS NOTtype_bit,
	GetType(~ bigint0) AS NOTtype_bigint
INTO typesNOT
FROM MyCTE

Retourne les informations suivantes :

NOTtype_bit NOTtype_bigint
bit bigint

Voir aussi