我见过同时使用两者的SQL!=<>表示不相等。首选的语法是什么?为什么?

我喜欢!=,因为<>让我想起了Visual Basic。


当前回答

我理解C语法!=由于其Unix传统(早在Sybase SQL Server时代,早在Microsoft SQL Server 6.5之前)。

其他回答

从技术上讲,如果您使用SQL Server AKA T-SQL,它们的功能是相同的。如果您在存储过程中使用它,那么就没有性能上的理由使用其中一个。然后归结到个人偏好。我更喜欢使用<>,因为它符合ANSI标准。

您可以在以下位置找到各种ANSI标准的链接。。。

http://en.wikipedia.org/wiki/SQL

它们对于SQL Server都是有效的,

https://learn.microsoft.com/en-us/sql/t-sql/language-elements/not-equal-to-transact-sql-exclamation

“<>”来自SQL-92标准,“!=”是一个专有的T-SQL运算符。它也可以在其他数据库中使用,但由于它不是标准的,您必须根据具体情况进行处理。

在大多数情况下,您将知道您正在连接的数据库,因此这不是真正的问题。最坏的情况下,您可能需要在SQL中进行搜索和替换。

ANSI SQL标准将<>定义为“不等于”运算符,

http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt(5.2<token>和<separator>)

没有!=运算符。

大多数数据库都支持!=(流行编程语言)和<>(ANSI)。

支持两者的数据库!=和<>:

Apache Derby 10.6:!=和<>IBM Informix Dynamic Server 10:!=和<>InterBase/Firebird:!=和<>Microsoft SQL Server 2000/2005/2008/2012/2016:!=和<>Mimer SQL 11.0:!=和<>MySQL 5.1:!=和<>Oracle 10g:!=和<>PostgreSQL 8.3:!=和<>Sybase Adaptive Server Enterprise 11.0:!=和<>

仅支持ANSI标准运算符的数据库:

IBM DB2 UDB 9.5:<>Microsoft Access 2010:<>