sql >> Databasteknik >  >> RDS >> Sqlserver

osignerad högerskift '>>>' Operatör i sql-server

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


  1. Kan inte använda objekt av typen PDOStatement som array

  2. MySQL-åtkomst nekad 1045-fel

  3. Inga onMessage-händelser på Runtime (Java JMS MessageListener på Oracle Queue)

  4. Unnest array med en nivå