LEFT_SHIFT(Transact SQL)

적용 대상: Microsoft Fabric의 Microsoft FabricWarehouse에 있는 SQL Server 2022(16.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL 분석 엔드포인트

LEFT_SHIFT는 두 개의 매개 변수를 사용하고 두 번째 매개 변수에 지정된 비트 수만큼 왼쪽으로 이동한 첫 번째 매개 변수를 반환합니다.

LEFT_SHIFT 함수는 << 연산자를 통해 액세스할 수도 있습니다.

Transact-SQL 구문 규칙

구문

LEFT_SHIFT ( expression_value, shift_amount )
expression_value << shift_amount

인수

expression_value

LOB(큰 개체)가 아닌 정수 또는 이진 식입니다.

shift_amount

expression_value로 이동해야 하는 비트 수입니다. shift_amount는 정수 형식이어야 합니다.

반환 형식

expression_value와 동일한 형식을 반환합니다.

shift_amount 매개 변수는 bigint로 캐스팅됩니다. 매개 변수는 양수 또는 음수일 수 있으며 expression_value 데이터 형식의 비트 수보다 클 수도 있습니다. shift_amount가 음수이면 반대 방향으로 이동합니다. 예를 들어 LEFT_SHIFT (expr, -1)RIGHT_SHIFT (expr, 1)과 같습니다. shift_amountexpression_value의 비트 수보다 크면 반환되는 결과는 0입니다.

LEFT_SHIFT는 논리적 이동을 수행합니다. 비트가 이동하면 원래 값이 양수인지 음수인지 여부에 관계없이 0에 의해 빈 위치가 채워집니다.

설명

초기 구현에서는 연결된 서버 내의 비트 조작 함수 또는 OPENQUERY(임시 쿼리)에 대한 분산 쿼리 기능이 지원되지 않습니다.

<< 함수에 LEFT_SHIFT 대한 메서드는 현재 Microsoft Fabric에서 지원되지 않습니다.

예제

다음 예제에서 정수 값 12345는 왼쪽에서 5비트씩 이동합니다.

SELECT LEFT_SHIFT(12345, 5);

결과는 395040입니다. 12345를 이진으로 변환하는 경우 0011 0000 0011 1001이 됩니다. 이 값을 왼쪽으로 5씩 이동하면 0110 0000 0111 0010 0000이 되며, 이는 10진수로 395040입니다.

다음 표에서는 각 교대 이동 중에 발생하는 사항을 보여줍니다.

정수 값 이진 값 설명
12345 0011 0000 0011 1001 시작 값
24690 0110 0000 0111 0010 왼쪽으로 1씩 이동
49380 1100 0000 1110 0100 왼쪽으로 2씩 이동
98760 0001 1000 0001 1100 1000 왼쪽으로 3씩 이동
새 바이트로 열기
197520 0011 0000 0011 1001 0000 왼쪽으로 4씩 이동
395040 0110 0000 0111 0010 0000 왼쪽으로 5씩 이동

추가 정보