Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

shift kanan unsigned '>>>' Operator di sql server

T-SQL tidak memiliki operator bit-shift, jadi Anda harus mengimplementasikannya sendiri. Ada implementasi pergeseran bitwise di sini:http ://dataeducation.com/bitmask-handling-part-4-left-shift-and-right-shift/

Anda harus melemparkan integer Anda ke varbinary, menggunakan fungsi shift bitwise dan melemparkan kembali ke integer dan (semoga) hei-presto! Ada hasil yang Anda harapkan.

Implementasi dan pengujian diserahkan sebagai latihan untuk pembaca...

Sunting - Untuk mencoba mengklarifikasi apa yang saya masukkan dalam komentar di bawah, menjalankan SQL ini akan menunjukkan hasil berbeda yang diberikan oleh berbagai 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

Hasil:

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. Cara meringkas bidang waktu di SQL Server

  2. T-SQL Dynamic alias tanpa menggunakan SQL dinamis

  3. Cara menyesuaikan kinerja SQL Server, Azure SQL Database, dan Amazon RDS

  4. Mendapatkan Nilai Pengembalian di C# asp.net dari prosedur tersimpan (masalah sintaks)

  5. SQL SERVER 2008 DAPATKAN NILAI YANG TERAKHIR DIMASUKKAN