T-SQL har ingen bit-shift-operatorer, så du bliver nødt til at implementere en selv. Der er en implementering af bitvise skift her:http ://dataeducation.com/bitmask-handling-part-4-left-shift-and-right-shift/
Du bliver nødt til at caste dit heltal til en varbinær, bruge den bitvise skiftfunktion og caste tilbage til heltal og (forhåbentlig) hey-presto! Der er dit resultat, du forventer.
Implementering og test efterlades som en øvelse for læseren...
Rediger - For at prøve at præcisere, hvad jeg har skrevet i kommentarerne nedenfor, vil udførelse af denne SQL demonstrere de forskellige resultater givet af de forskellige CAST'er:
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
Resultater:
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