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

hàm bitand oracle

Trong hệ nhị phân, "set" có nghĩa là "có giá trị 1". "Chưa đặt" có nghĩa là "có giá trị 0".

Từ tài liệu Oracle cho BITAND:

"Kết quả được tính theo nhiều bước. Đầu tiên, mỗi đối số A được thay thế bằng giá trị SIGN (A) * FLOOR (ABS (A)). Việc chuyển đổi này có tác dụng cắt ngắn đối số về 0. Tiếp theo, mỗi đối số A (phải bây giờ là một giá trị số nguyên) được chuyển đổi thành giá trị số nguyên nhị phân bổ sung của n-bit hai. Hai giá trị bit được kết hợp bằng cách sử dụng phép toán bitwise AND. Cuối cùng, giá trị bổ sung của n-bit hai kết quả được chuyển đổi trở lại NUMBER. "

Nói một cách đơn giản, hàm này cắt ngắn các đối số của nó, chuyển đổi chúng thành một số nhị phân (hiện giới hạn ở 128 bit), AND là hai số nhị phân cùng nhau và trả về kết quả của việc chuyển đổi số nhị phân trở lại một SỐ.

Đây là kết quả của tất cả các kết hợp có thể có của không và một:

SELECT BITAND(0, 0) AS "0, 0",  -- i.e. 0 AND 0 = 0
       BITAND(0, 1) AS "0, 1",  -- i.e. 0 AND 1 = 0
       BITAND(1, 0) AS "1, 0",  -- i.e. 1 AND 0 = 0
       BITAND(1, 1) AS "1, 1"   -- i.e. 1 AND 1 = 1
  FROM DUAL;

Một ví dụ phức tạp hơn sẽ là AND kết hợp 11 và 5. Trong hệ nhị phân, số thập phân 11 trở thành "1011". 5 thập phân trở thành "0101" nhị phân. Nếu bạn VÀ các giá trị này cùng nhau, như trong

1 0 1 1
0 1 0 1
-------
0 0 0 1

bạn nhận được 1 số nhị phân, vẫn là 1 khi được chuyển đổi lại thành số thập phân.

Chia sẻ và tận hưởng.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-00979:không phải là vấn đề về biểu thức GROUP BY

  2. ORACLE SQL:Thiếu từ khóa

  3. Gặp phải lỗi SQL:ORA-01843:không phải là tháng hợp lệ

  4. Truy vấn Oracle - Chọn bản ghi sử dụng dữ liệu cột từ bảng đầu tiên

  5. Làm thế nào để gọi một thủ tục được lưu trữ với con trỏ ref làm tham số đầu ra bằng cách sử dụng Spring?