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

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


当前回答

另一种选择是使用NULLIF运算符,而不是<>或!=如果两个参数在Microsoft Docs中等于NULLIF,则返回NULL。所以我相信WHERE子句可以为<>和!=修改如下所示:

NULLIF(arg1, arg2) IS NOT NULL

正如我发现的,使用<>和!=在某些情况下不适合约会。因此,使用上述表达式是必要的。

其他回答

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

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

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

没有!=运算符。

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

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

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

我喜欢使用!=而不是<>,因为有时我使用<s></s>语法来编写SQL命令。使用!=在这种情况下,避免语法错误更方便。

!=, 尽管是非ANSI语言,但它更符合SQL作为一种可读语言的真正精神。它的尖叫声并不相等。<>说这对我来说(小于,大于)很奇怪。我知道它的意图是,要么小于,要么大于,因此不相等,但这是一个非常复杂的方式来表达一些非常简单的东西。

我只需要进行一些长时间的SQL查询,并将它们可爱地放入XML文件中,这是一大堆愚蠢的原因,我将不再赘述。

只需说XML完全没有被<>破坏,我不得不将它们改为!=在我搞砸自己之前检查一下自己。