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ıyla sola kaydırılmış birinci parametreyi döndürür.

LEFT_SHIFT fonksiyonu da operatör << aracılığıyla 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. 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.

LEFT_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 LEFT_SHIFT fonksiyonun yöntemi şu anda Microsoft Fabric'te desteklenmemektedir.

Örnekler

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

SELECT LEFT_SHIFT(12345, 5);

Sonuç 395040'tır. 12345'i ikili olarak dönüştürürseniz, 0011 0000 0011 1001elde edilir. Bunu 5 ile sola kaydırmak 0110 0000 0111 0010 0000, ondalık 395040 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
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,
ve yeni bir bayta açılır
197520 0011 0000 0011 1001 0000 4 sola, kaydırma
395040 0110 0000 0111 0010 0000 5 ile sola kaydırın

Ayrıca bakınız