다음을 통해 공유


&(비트 AND)(Azure Stream Analytics)

두 정수 값 간에 비트 논리 AND 연산을 수행하여 두 식에서 각 해당 비트를 평가합니다.

Syntax

expression & expression

인수

expression

데이터 형식 비트 또는 bigint의 유효한 식입니다. 식은 비트 연산에 대한 이진 숫자로 처리됩니다.

반환 형식

입력 값이 모두 비트이면 비트입니다.

하나 또는 둘 다 입력 값이 bigint이면 bigint입니다.

설명

& 비트 연산자는 두 식 간에 비트 논리 AND를 수행하여 두 식에 대해 각 해당 비트를 사용합니다. 결과의 비트는 입력 식에 있는 양쪽 비트(확인 중인 현재 비트)의 값이 1이면 1로 설정되고 그렇지 않으면 0으로 설정됩니다.

예를 들어 170의 이진 표현은 0000 0000 1010 1010입니다. 75의 이진 표현은 0000 0000 0100 1011입니다. 이러한 두 값에 대해 비트 AND 연산을 수행하면 10진수인 이진 결과 0000 0000 0000 1010이 생성됩니다.

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

FLOAT 값을 BIGINT에 캐스팅하고 비트 연산자를 적용해도 BIT에 캐스팅하고 동일한 연산자를 적용하는 것과 같은 결과가 반환되지 않는 경우가 많습니다.

  • 첫 번째 옵션: 170 & 75.0 => 170 & 75 = 10
  • 두 번째 옵션: 170 & 75.0 => 170 & 1 = 0

비트로 변환하는 규칙은 데이터 형식 개요 를 참조하세요.

예제

일반적인 입력 데이터 세트 사용:

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
)

비트 식에 연산자 적용:

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

HRESULT = NO_ERROR를

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

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

HRESULT = NO_ERROR를

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

출력 형식의 유효성 검사:

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

HRESULT = NO_ERROR를

ANDtype_bit ANDtype_bigint ANDtype_mixed
bit bigint bigint

참고 항목