Có sự khác biệt nào giữa “! =” Và “<>” trong Oracle Sql không?


Câu trả lời:


110

Không có sự khác biệt nào về chức năng.
(Điều này cũng đúng với tất cả các DBMS khác - hầu hết chúng hỗ trợ cả hai kiểu):

Đây là tham chiếu SQL hiện tại: https://docs.oracle.com/database/121/SQLRF/conditions002.htm#CJAGAABC

Tiêu chuẩn SQL chỉ định nghĩa một toán tử duy nhất cho " không bằng " và đó là<>


14
! = dễ dàng hơn để lưu trữ trong tệp XML!
Mark McLaren

IS NOTtương đương / synonomous / .. đến <>!=? Cả ba có thể được sử dụng theo cùng một cách?
nutty about natty

50

Trên thực tế, có bốn dạng toán tử này:

<>
!=
^=

và ngay cả

¬= -- worked on some obscure platforms in the dark ages

giống nhau, nhưng được xử lý khác nhau khi yêu cầu đối sánh nguyên văn (dàn bài được lưu trữ hoặc truy vấn được lưu trong bộ nhớ cache).


2
Và các biến thể như NOT(x = y), có thể !(x = y), v.v.?
MatBailie

1
Hấp dẫn! Tôi không biết về cái ^=(tự mình nhìn thấy nó lần đầu tiên khi tôi đăng liên kết đến sách hướng dẫn). Nhưng quan điểm của bạn về các truy vấn được lưu trong bộ nhớ cache là một quan điểm tốt.
a_horse_with_no_name

1
@Dems: in Oracle, boolean không phải là kiểu hạng nhất trong SQL(khác với PL/SQL). I E. bạn không thể SELECT 1 = 1 FROM dualthích trong một số hệ thống khác. Vì vậy, các phép toán luận đã thiết lập riêng của họ về các nhà khai thác chỉ có giá trị trong bối cảnh hợp lý ( WHEREhoặc HAVINGhoặc các điều khoản tương tự). NOTlà toán tử phủ định boolean duy nhất trong Oracle's SQL(AFAIK).
Quassnoi

3
¬= -- worked on some obscure platforms in the dark ages- vâng, chúng được gọi là "máy tính lớn của IBM". Từ những ngày đàn ông là đàn ông, đàn bà là phụ nữ, khủng long đi lang thang trên trái đất và máy tính làm mát bằng nước. :-)
Bob Jarvis - Phục hồi Monica

1

Ở trường đại học, chúng tôi được dạy 'phương pháp hay nhất' là sử dụng! = Khi làm việc cho các nhà tuyển dụng, mặc dù tất cả các toán tử ở trên đều có chức năng giống nhau.


14
Tiêu chuẩn SQL (chỉ) định nghĩa <>là toán tử "không bằng". Vì vậy, tôi sẽ coi việc sử dụng đó là "phương pháp hay nhất"
a_horse_with_no_name

2
Hấp dẫn. Có thể phải kiểm tra mọi thứ khác mà tôi đã được dạy là chuẩn SQL hay không. Cảm ơn đã chỉ ra điều đó.

11
Có lẽ là di sản C của tôi sắp ra mắt, nhưng tôi không thể đứng <>và thích hơn !=. Chủ yếu là vì <>trong câu nói của nó "nhỏ hơn hoặc lớn hơn", đối với tôi, dường như giả sử kiểu dữ liệu có một thứ tự ngầm định (điều này không nhất thiết đúng, mặc dù nó đúng với tất cả các kiểu dữ liệu SQL), trong khi !=nói "không bằng" theo một nghĩa rất thuần túy.
Jeffrey Kemp

1
Các tiêu chuẩn mã hóa thường phụ thuộc vào người sử dụng lao động. Nếu người sử dụng lao động của bạn không có tiêu chuẩn mã hóa, bạn nên chọn một tiêu chuẩn công khai.
Denise Skidmore

-3

Theo bài báo này,! = Hoạt động nhanh hơn

http://www.dba-oracle.com/t_not_equal_operator.htm


18
Mặc dù phổ biến, trang web đó không may là một nguồn đáng tin cậy về nhiều chủ đề. Vấn đề này đã được thảo luận trước đây ở đây . Bất chấp tiền thưởng, không ai có thể tạo một trường hợp thử nghiệm chứng tỏ sự khác biệt đáng chú ý về hiệu suất. Nhưng đề nghị của tôi vẫn có hiệu lực - Tôi sẽ tặng bạn tiền thưởng 500 điểm nếu bạn có thể tạo một trường hợp thử nghiệm cho thấy rằng! = Nhanh hơn các toán tử not-equals khác.
Jon Heller
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.