Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

unsigned przesunięcie w prawo '>>>' Operator na serwerze sql

T-SQL nie ma operatorów przesunięcia bitowego, więc trzeba by go samemu zaimplementować. Jest tu implementacja przesunięć bitowych:http ://dataeducation.com/bitmask-handling-part-4-left-shift-and-right-shift/

Musiałbyś rzucić swoją liczbę całkowitą na varbinary, użyć funkcji przesunięcia bitowego i rzucić z powrotem na liczbę całkowitą i (miejmy nadzieję) hej-presto! Oto Twój wynik, którego oczekujesz.

Wdrożenie i testowanie pozostawiono jako ćwiczenie dla czytelnika...

Edytuj — aby spróbować wyjaśnić, co umieściłem w poniższych komentarzach, wykonanie tego kodu SQL zademonstruje różne wyniki podane przez różne CAST:

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

Wyniki:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Połącz się z serwerem SQL z uwierzytelnianiem systemu Windows z komputera z systemem Linux za pośrednictwem JDBC

  2. SQL Recursive CTE:Znajdowanie obiektów połączonych przez właściwość

  3. tsql zwraca tabelę z funkcji lub procedury magazynu

  4. Jak uzyskać określony format daty ('dd-MMM-rrrr') w zapytaniu SELECT SQL Server 2008 R2

  5. Skanowanie wstecz indeksu SQL Server:zrozumienie i dostrajanie wydajności