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 ikinci parametrede belirtilen bit sayısıyla sağa kaydırılan ilk bit parametresini döndürür.

İşleve RIGHT_SHIFT işleç üzerinden >> de 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. Parametresi pozitif veya negatif olabilir ve expression_value veri türündeki 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_valuebit sayısından büyük olduğunda, döndürülen sonuç şeklindedir0.

RIGHT_SHIFT mantıksal bir kaydırma gerçekleştirir. Bitler kaydırıldıktan sonra, özgün değerin pozitif veya negatif olmasına bakılmaksızın boş konumlar ile 0doldurulur.

Açıklamalar

İlk uygulamada, bağlı sunucu veya geçici sorgular (OPENQUERY) içindeki bit işleme işlevleri için Dağıtılmış Sorgu işlevi desteklenmez.

>> İşlevin RIGHT_SHIFT yöntemi şu anda Microsoft Fabric'te desteklenmiyor.

Örnekler

Aşağıdaki örnekte, 12.345 tamsayı değeri 5 bit sağa kaydırılır.

SELECT RIGHT_SHIFT(12345, 5);

Sonuç 385 oldu. 12.345'i ikiliye dönüştürürseniz, sahip 0011 0000 0011 1001olursunuz. Bu değerin 5 bit 0001 1000 0001sağa kaydırılması ondalık olan olur 385 .

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