T-SQL nemá žádné operátory bitového posunu, takže byste je museli implementovat sami. Zde je implementace bitových posunů:http ://dataeducation.com/bitmask-handling-part-4-left-shift-and-right-shift/
Museli byste přehodit celé číslo na varbinary, použít funkci bitového posunu a přehodit zpět na celé číslo a (doufejme) hej-presto! Zde je váš výsledek, který očekáváte.
Implementace a testování je ponecháno jako cvičení pro čtenáře...
Upravit – Abychom se pokusili objasnit, co jsem vložil do komentářů níže, spuštění tohoto SQL předvede různé výsledky dané různými CASTy:
SELECT -5381 AS Signed_Integer,
cast(-5381 AS varbinary) AS Binary_Representation_of_Signed_Integer,
cast(cast(-5381 AS bigint) AS varbinary) AS Binary_Representation_of_Signed_Big_Integer,
cast(cast(-5381 AS varbinary) AS bigint) AS Signed_Integer_Transposed_onto_Big_Integer,
cast(cast(cast(-5381 AS varbinary) AS bigint) AS varbinary) AS Binary_Representation_of_Signed_Integer_Trasposed_onto_Big_Integer
Výsledky:
---pre>Signed_Integer Binary_Representation_of_Signed_Integer Binary_Representation_of_Signed_Big_Integer Signed_Integer_Transposed_onto_Big_Integer Binary_Representation_of_Signed_Integer_Trasposed_onto_Big_Integer
-------------- -------------------------------------------------------------- -------------------------------------------------------------- ------------------------------------------ ------------------------------------------------------------------
-5381 0xFFFFEAFB 0xFFFFFFFFFFFFEAFB 4294961915 0x00000000FFFFEAFB