Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

unsigned right shift '>>>' Toán tử trong máy chủ sql

T-SQL không có toán tử dịch chuyển bit, vì vậy bạn phải tự triển khai một toán tử. Có một cách triển khai thay đổi một chút ở đây: http ://dataeducation.com/bitmask-handling-part-4-left-shift-and-right-shift/

Bạn sẽ phải truyền số nguyên của mình sang một varbinary, sử dụng hàm chuyển bitwise và truyền trở lại số nguyên và (hy vọng) hey-presto! Có kết quả mà bạn mong đợi.

Việc triển khai và thử nghiệm được để lại như một bài tập cho người đọc ...

Chỉnh sửa - Để cố gắng làm rõ những gì tôi đã đưa ra trong các nhận xét bên dưới, việc thực thi SQL này sẽ chứng minh các kết quả khác nhau được đưa ra bởi các CAST khác nhau:

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

Kết quả:

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. Sử dụng Excel VBA để chạy truy vấn SQL

  2. Chỉ thay thế phiên bản thứ n của ký tự

  3. Sử dụng Web.Config để thiết lập chuỗi kết nối cơ sở dữ liệu SQL của tôi?

  4. Lấy mã định danh cơ sở dữ liệu duy nhất cho SQL Server 2005 trở lên

  5. SQL Server 2008 - NẾU KHÔNG TỒN TẠI CHÈN CẬP NHẬT ELSE