적용 대상: SQL Server 2022 (16.x)
Azure SQL 데이터베이스
Azure SQL Managed Instance
SQL Analytics endpoint in Microsoft
Fabric
Warehouse SQL데이터베이스 in Microsoft Fabric
RIGHT_SHIFT는 두 개의 매개 변수를 사용하고 두 번째 매개 변수에 지정된 비트 수만큼 오른쪽으로 이동한 첫 번째 매개 변수를 반환합니다.
RIGHT_SHIFT 함수는 >> 연산자를 통해 액세스할 수도 있습니다.
구문
RIGHT_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_amount가 expression_value의 비트 수보다 크면 반환되는 결과는 0입니다.
RIGHT_SHIFT는 논리적 이동을 수행합니다. 비트가 이동하면 원래 값이 양수인지 음수인지 여부에 관계없이 0에 의해 빈 위치가 채워집니다.
설명
초기 구현에서는 연결된 서버 내의 비트 조작 함수 또는 OPENQUERY(임시 쿼리)에 대한 분산 쿼리 기능이 지원되지 않습니다.
>> 함수에 RIGHT_SHIFT 대한 메서드는 현재 Microsoft Fabric에서 지원되지 않습니다.
예제
다음 예제에서 정수 값 12345는 오른쪽에서 5비트씩 이동합니다.
SELECT RIGHT_SHIFT(12345, 5);
결과는 385입니다. 12345를 이진으로 변환하는 경우 0011 0000 0011 1001이 됩니다. 이 값을 오른쪽으로 5씩 이동하면 0001 1000 0001이 되며, 이는 10진수로 385입니다.
다음 표에서는 각 교대 이동 중에 발생하는 사항을 보여줍니다.
| 정수 값 | 이진 값 | 설명 |
|---|---|---|
| 12345 | 0011 0000 0011 1001 |
시작 값 |
| 6172 | 0001 1000 0001 1100 |
오른쪽으로 1씩 이동 |
| 3086 | 0000 1100 0000 1110 |
오른쪽으로 2씩 이동 |
| 1543 | 0000 0110 0000 0111 |
오른쪽으로 3씩 이동 |
| 771 | 0000 0011 0000 0011 |
오른쪽으로 4씩 이동 |
| 385 | 0000 0001 1000 0001 |
오른쪽으로 5씩 이동 |