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

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


当前回答

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

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

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

其他回答

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

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

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

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

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

微软自己似乎更喜欢<>!=如它们的表约束所证明的。我个人更喜欢使用!=因为我清楚地将其读为“不相等”,但如果输入[field1!=field2]并将其保存为约束,下次查询它时,它将显示为[field1<>field2]。这告诉我,正确的做法是<>。

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

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

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