Aracılığıyla paylaş


RIGHT_SHIFT (Transact SQL)

Şunlar için geçerlidir: SQL Server 2022 (16.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL analytics endpoint in Microsoft FabricWarehouse in Microsoft FabricSQL database in Microsoft Fabric

RIGHT_SHIFT iki parametre alır ve birinci parametreyi ikinci parametrede belirtilen bit sayısıyla sağa bit kaydırmış döndürür.

RIGHT_SHIFT fonksiyonu da operatör >> aracılığıyla erişilebilir.

Transact-SQL söz dizimi kuralları

Sözdizimi

RIGHT_SHIFT ( expression_value, shift_amount )
expression_value >> shift_amount

Arguments

expression_value

Büyük bir nesne (LOB) olmayan herhangi bir tamsayı veya ikili ifade.

shift_amount

expression_value kaydırılması gereken bit sayısı. shift_amount tam sayı türü olmalı.

Dönüş türleri

expression_value ile aynı tipi döndürüyor.

shift_amount parametresi bir bigint olarak atılır. Parametre pozitif veya negatif olabilir ve expression_value veri tipindeki bit sayısından da büyük olabilir. shift_amount negatif olduğunda, kayma ters yönde çalışır. Örneğin, LEFT_SHIFT (expr, -1)RIGHT_SHIFT (expr, 1)ile aynıdır. shift_amount, expression_value'daki bit sayısından büyük olduğunda, geri dönen sonuç olarak olacaktır0.

RIGHT_SHIFT mantıklı bir kayma gerçekleştirir. Bitler kaydırıldıktan sonra, boş pozisyonlar orijinal değer pozitif mi negatif olursa olsun , ile 0doldurulur.

Açıklamalar

İlk uygulamada, bağlı sunucu veya ad hoc sorgular (OPENQUERY) içindeki bit işleme fonksiyonları için Dağıtılmış Sorgu işlevselliği desteklenmeyecektir.

>> Bu RIGHT_SHIFT fonksiyonun yöntemi şu anda Microsoft Fabric'te desteklenmemektedir.

Örnekler

Aşağıdaki örnekte, 12345 tam sayı değeri 5 bit sağa kaydırılmıştır.

SELECT RIGHT_SHIFT(12345, 5);

Sonuç 385 oldu. 12345'i ikili olarak dönüştürürseniz, 0011 0000 0011 1001elde edilir. Bunu sağa 5 ile kaydırmak 0001 1000 0001, ondalık 385 olarak olur.

Aşağıdaki tablo, her vardiya sırasında neler olduğunu göstermektedir.

Tamsayı değeri İkili değer Description
12345 0011 0000 0011 1001 Başlangıç değeri
6172 0001 1000 0001 1100 1 sağa kaydırın
3086 0000 1100 0000 1110 Sağa 2 kaydırın
1543 0000 0110 0000 0111 3 ile sağa kaydırın
771 0000 0011 0000 0011 Saat 4'te sağa kay
385 0000 0001 1000 0001 5'te sağa kay

Ayrıca bakınız