Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí na: SQL Server 2022 (16.x)
Azure SQL Database
AzureSQL Managed Instance
SQL analytics endpoint in Microsoft Fabric
Warehouse in Microsoft Fabric
SQL database in Microsoft Fabric
LEFT_SHIFT přebírá dva parametry a vrátí první bitový posun parametru doleva o počet bitů zadaných v druhém parametru.
Funkce LEFT_SHIFT je také přístupná prostřednictvím operátoru << .
Syntaxe
LEFT_SHIFT ( expression_value , shift_amount )
expression_value << shift_amount
Arguments
expression_value
Jakýkoli celočíselný nebo binární výraz, který není velkým objektem (LOB).
shift_amount
Počet bitů, o které by měl být expression_value posunut. shift_amount musí být celočíselný typ.
Návratové typy
Vrací stejný typ jako expression_value.
Parametr shift_amount se přelije do bigintu. Parametr může být kladný nebo záporný a může být také větší než počet bitů v datovém typu expression_value. Když je shift_amount záporný, posun působí opačným směrem. Například LEFT_SHIFT (expr, -1) je stejná jako RIGHT_SHIFT (expr, 1). Pokud je shift_amount větší než počet bitů v expression_value, vrátí se 0výsledek .
LEFT_SHIFT provede logický posun. Po posunu bitů se všechny volné pozice vyplní 0, bez ohledu na to, zda byla původní hodnota kladná nebo záporná.
Poznámky
V počáteční implementaci není podporována funkce distribuovaného dotazu pro funkce pro práci s bity v rámci odkazovaného serveru nebo ad hoc dotazů (OPENQUERY).
Metoda << pro LEFT_SHIFT funkci není v současné době v Microsoft Fabric podporovaná.
Examples
V následujícím příkladu je celočíselná hodnota 12 345 posunuta doleva o 5 bitů.
SELECT LEFT_SHIFT(12345, 5);
Výsledek je 395 040. Pokud převedete hodnotu 12 345 na binární, máte 0011 0000 0011 1001. Posun této hodnoty doleva o 5 bitů se stane 0110 0000 0111 0010 0000, což je 395040 v desítkové soustavě.
Následující tabulka ukazuje, co se děje během každé směny.
| Celočíselná hodnota | Binární hodnota | Description |
|---|---|---|
12345 |
0011 0000 0011 1001 |
Počáteční hodnota |
24690 |
0110 0000 0111 0010 |
Posunout se doleva o 1 |
49380 |
1100 0000 1110 0100 |
Posuňte se doleva o 2 |
98760 |
0001 1000 0001 1100 1000 |
Posun doleva o 3 a otevření nového bajtu |
197520 |
0011 0000 0011 1001 0000 |
Posuňte se doleva o 4 |
395040 |
0110 0000 0111 0010 0000 |
Posuňte se doleva o 5 |
Související obsah
- RIGHT_SHIFT (Transact SQL)
- SET_BIT (Transact SQL)
- GET_BIT (Transact SQL)
- BIT_COUNT (Transact SQL)
- funkce pro manipulaci s bity