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

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


当前回答

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

其他回答

<>是根据SQL-92标准的有效SQL。

http://msdn.microsoft.com/en-us/library/aa276846(SQL.80).aspx

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

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

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

它们都在T-SQL中被接受。然而,使用<>的速度似乎比!=快得多。我刚刚运行了一个使用!=,平均跑了大约16秒。我将它们改为<>,现在查询平均运行大约需要4秒。这是一个巨大的进步!

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

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