Aracılığıyla paylaş


LEFT_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

LEFT_SHIFT iki parametre alır ve ikinci parametrede belirtilen bit sayısı tarafından sola kaydırılan ilk bit parametresini döndürür.

İşleve LEFT_SHIFT işleç üzerinden << de erişilebilir.

Transact-SQL söz dizimi kuralları

Sözdizimi

LEFT_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.

LEFT_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şlevselliği desteklenmez.

<< İşlevin LEFT_SHIFT yöntemi şu anda Microsoft Fabric'te desteklenmiyor.

Örnekler

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

SELECT LEFT_SHIFT(12345, 5);

Sonuç 395.040'tır. 12.345'i ikiliye dönüştürürseniz, sahip 0011 0000 0011 1001olursunuz. Bu değerin 5 bit 0110 0000 0111 0010 0000sola kaydırılması ondalık olan olur 395040 .

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
24690 0110 0000 0111 0010 1 sola, sola kaydırın
49380 1100 0000 1110 0100 2 sola kaydırma
98760 0001 1000 0001 1100 1000 3 sola kaydır ve yeni bir bayt aç
197520 0011 0000 0011 1001 0000 4 sola, kaydırma
395040 0110 0000 0111 0010 0000 5 ile sola kaydırın