T-SQL har inga bitskiftsoperatorer, så du måste implementera en själv. Det finns en implementering av bitvisa skift här:http ://dataeducation.com/bitmask-handling-part-4-left-shift-and-right-shift/
Du skulle behöva casta ditt heltal till en varbinary, använda den bitvisa skiftfunktionen och casta tillbaka till heltal och (förhoppningsvis) hey-presto! Där är ditt resultat du förväntar dig.
Implementering och testning lämnas som en övning för läsaren...
Redigera - För att försöka förtydliga vad jag har skrivit i kommentarerna nedan, kommer exekvering av denna SQL att visa de olika resultaten som ges av de olika CASTerna:
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
Resultat:
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