Condividi tramite


| (OR bit per bit) (Analisi di flusso di Azure)

Esegue un'operazione OR logica bit per bit tra due valori integer, valutando ogni bit corrispondente da entrambe le espressioni.

Sintassi

expression | expression

Argomenti

expression

Espressione valida dei tipi di dati bit o bigint. L'espressione viene considerata come un numero binario per l'operazione bit per bit.

Tipi restituiti

bit se entrambi i valori di input sono bit.

bigint se uno o entrambi i valori di input sono bigint.

Commenti

| l'operatore bit per bit esegue un OR logico bit per bit tra le due espressioni, prendendo ogni bit corrispondente per entrambe le espressioni. I bit nel risultato sono impostati su 1 se o entrambi i bit (per il bit corrente risolto) nelle espressioni di input hanno un valore pari a 1; in caso contrario, il bit nel risultato è impostato su 0.

Per illustrazione, la rappresentazione binaria di 170 è 0000 0000 1010 1010. La rappresentazione binaria di 75 è 0000 0000 0100 1011. L'esecuzione dell'operazione AND bit per bit su questi due valori produce il risultato binario 0000 000 1110 1011, che è decimale 235.

(170 | 75)
0000 0000 1010 1010
0000 0000 0100 1011
-------------------
0000 0000 1110 1011

Si noti che il cast di un valore FLOAT su BIGINT e l'applicazione di un operatore bit per bit su di esso spesso non restituirà lo stesso risultato del cast in BIT e l'applicazione dello stesso operatore:

  • Prima opzione : 170 | 75.0 = 170 | 75 => 235
  • Seconda opzione : 170 | 75.0 = 170 | 1 => 171

Vedere Panoramica dei tipi di dati per le regole di conversione in bit.

Esempio

Con un set di dati di input comune:

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
)

Applicazione dell'operatore in espressioni di bit :

SELECT
	bit0,
	bit1,
	bitN,
	bit0 | bit0 AS OR00,
	bit0 | bit1 AS OR01,
	bit1 | bit0 AS OR10,
	bit1 | bit1 AS OR11,
	bitN | bit0 AS ORnull
INTO bitOR
FROM MyCTE

Restituisce:

bit0 bit1 bitN OR00 OR01 OR10 OR11 ORnull
false true NULL false true true true NULL

Applicazione dell'operatore su espressioni bigint :

SELECT
	bigint0,
	bigint1,
	bigintN,
	bigint0 | bigint0 AS OR00,
	bigint0 | bigint1 AS OR01,
	bigint1 | bigint0 AS OR10,
	bigint1 | bigint1 AS OR11,
	bigintN | bigint1 AS ORnull,
	170 | 75 AS ORvalues
INTO bigintOR
FROM MyCTE

Restituisce:

bigint0 bigint1 bigintN OR00 OR01 OR10 OR11 ORnull ORvalues
0 1 NULL 0 1 1 1 NULL 235

Convalida dei tipi di output:

SELECT
	GetType(bit0 | bit0) AS ORtype_bit,
	GetType(bigint0 | bigint0) AS ORtype_bigint,
	GetType(bit0 | bigint0) AS ORtype_mixed
INTO typesOR
FROM MyCTE

Restituisce:

ORtype_bit ORtype_bigint ORtype_mixed
bit bigint bigint

Vedere anche