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 bere dva parametry a vrací první parametr posunutý doleva o počet bitů zadaný ve druhém parametru.
Funkce LEFT_SHIFT je také přístupná přes operátora << .
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). Když je shift_amount větší než počet bitů v expression_value, výsledek vrácený bude .0
LEFT_SHIFT provádí logický posun. Po posunutí bitů budou všechna volná místa obsazena , 0bez ohledu na to, zda byla původní hodnota kladná nebo záporná.
Poznámky
V počáteční implementaci nebude podpora funkcionality Distributed Query pro funkce pro úpravu bitů v rámci propojených serverů nebo ad hoc dotazů (OPENQUERY).
Metoda << této LEFT_SHIFT funkce není v Microsoft Fabric v tuto chvíli podporována.
Examples
V následujícím příkladu je celočíselná hodnota 12345 posunuta doleva o 5 bitů.
SELECT LEFT_SHIFT(12345, 5);
Výsledek je 395040. Pokud převedete 12345 do binárního, máte 0011 0000 0011 1001. Posunutím doleva o 5 0110 0000 0111 0010 0000se stává , což je 395040 v desetinném rozvrhu.
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 |
Posuňte se doleva o 3, a otevře se do 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 |
Viz také
- RIGHT_SHIFT (Transact SQL)
- SET_BIT (Transact SQL)
- GET_BIT (Transact SQL)
- BIT_COUNT (Transact SQL)
- funkce pro manipulaci s bity