Question Dois-je utiliser! = Ou <> pour ne pas être égal en T-SQL?


J'ai vu SQL qui utilise à la fois != et <> pour inégal. Quelle est la syntaxe préférée et pourquoi?

J'aime !=, car <> me fait penser à Visual Basic.


683
2018-04-06 20:56


origine


Réponses:


Techniquement, ils fonctionnent de la même manière si vous utilisez SQL Server AKA T-SQL. Si vous l'utilisez dans des procédures stockées, il n'y a aucune raison de performance d'utiliser l'un sur l'autre. Il s'agit ensuite de préférences personnelles. Je préfère utiliser <> car il est conforme à ANSI.

Vous pouvez trouver des liens vers les différentes normes ANSI sur ...

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


456
2018-04-06 21:29



La plupart des bases de données != (langages de programmation populaires) et <> (ANSI).

Bases de données supportant les deux != et <>:

Bases de données prenant en charge l'opérateur standard ANSI, exclusivement:

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

656
2018-04-06 20:59



'<>' vient du Norme SQL-92 et '!=' est un propriétaire Opérateur T-SQL. Il est également disponible dans d'autres bases de données, mais comme ce n'est pas standard, vous devez le faire au cas par cas.

Dans la plupart des cas, vous saurez à quelle base de données vous vous connectez, ce n'est donc pas vraiment un problème. Au pire, vous devrez peut-être faire une recherche et remplacer dans votre SQL.


92
2018-04-06 20:59



La norme ANSI SQL définit <> en tant qu'opérateur "différent de",

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

Il n'y a pas != opérateur selon la norme ANSI / SQL 92.


37
2018-04-06 20:58



<> est le SQL valide selon la norme SQL-92.

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


23
2018-04-06 20:58



Ils sont tous deux valables et identiques en ce qui concerne serveur SQL,

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


18
2018-02-05 03:19



Il semble que Microsoft eux-mêmes préfèrent <> à != comme en témoignent leurs contraintes de table. Personnellement, je préfère utiliser != parce que je lis clairement que "pas égal", mais si vous entrez [field1 != field2] et enregistrez-le comme une contrainte, la prochaine fois que vous l'interrogerez, il apparaîtra comme [field1 <> field2]. Cela me dit que la bonne façon de le faire est <>.


14
2017-10-12 11:45