840 votes

Dois-je utiliser != ou <> pour ne pas égaux en TSQL?

J'ai vu SQL qui utilise à la fois != et <> pour ne pas l'égalité. Quel est le sens de: syntaxe et pourquoi?

J'aime != car <> me rappelle de Visual Basic.

751voto

Bill Karwin Points 204877

Pour ce que ça vaut, voici un tour d'horizon de tout un tas de populaire fournisseurs de bases de données et de leur soutien pour l' != contre <> comme l'opérateur d'inégalité:

La plupart des implémentations de support de la norme ANSI opérateur <> ainsi que l' != de l'opérateur qui est familière aux utilisateurs de la plus populaire des langages de programmation.

  • MySQL 5.1: prend en charge les deux != et <>
  • PostgreSQL 8.3: prend en charge les deux != et <>
  • SQLite: prend en charge les deux != et <>
  • Oracle 10g: prend en charge les deux != et <>
  • Microsoft SQL Server 2000/2005/2008: prend en charge les deux != et <>
  • IBM Informix Dynamic Server 10: prend en charge les deux != et <>
  • InterBase/Firebird: prend en charge les deux != et <>
  • Apache Derby 10.6: prend en charge les deux != et <>
  • Sybase Adaptive Server Enterprise 11.0: prend en charge les deux != et <>

Prise en charge de ces seule de la norme ANSI opérateur:

  • IBM DB2 UDB 9.5: prend en charge uniquement <>
  • Microsoft Access 2010: prend en charge uniquement <>

571voto

DBAndrew Points 2967

Techniquement, ils fonctionnent de la même si vous utilisez MS SQL aka T-SQL. Si vous l'utilisez dans des procédures stockées il n'y a aucune raison d'utiliser l'un sur l'autre. Il s'agit alors de préférence personnelle. Je préfère utiliser <> qu'elle est conforme à la norme ANSI.

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

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

115voto

Adam Lassek Points 18918

'<>' est à partir de la norme SQL-92, '!=' est une propriété de T-SQL opérateur. Il est disponible dans d'autres bases de données, mais comme il n'est pas standard, vous devez le prendre au cas par cas.

Dans la plupart des cas, vous saurez ce que la base de données auquel vous vous connectez donc ce n'est pas vraiment un problème. Au pire, vous pourriez avoir à faire une recherche et de remplacement dans votre sql.

44voto

Mehrdad Afshari Points 204872

La Norme SQL ANSI définit <> comme le "n'est pas égal à" opérateur,

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

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

24voto

madcolor Points 4077

Ils sont à la fois valables et même à l'égard de SQL Server,

http://msdn.microsoft.com/en-us/library/ms190296.aspx

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X