Oracle Sqlの「!=」と「<>」の間に違いはありますか?


回答:


109

機能に違いはありません。
(同じことが他のすべてのDBMSにも当てはまります。それらのほとんどは両方のスタイルをサポートしています):

現在のSQLリファレンスは次のとおりです。https//docs.oracle.com/database/121/SQLRF/conditions002.htm#CJAGAABC

SQL標準では、「等しくない」に対して単一の演算子のみを定義しています。<>


14
!=はXMLファイルに格納する方が簡単です!
マークマクラーレン

あるIS NOTに/ .. /同等同義<>!=?3つすべてを同じように使用できますか?
ナッティ

50

実際には、この演算子には4つの形式があります。

<>
!=
^=

そして

¬= -- worked on some obscure platforms in the dark ages

これらは同じですが、逐語的一致が必要な場合(格納されたアウトラインまたはキャッシュされたクエリ)は異なる方法で処理されます。


2
そしてNOT(x = y)、、多分!(x = y)、などのバリエーション?
MatBailie、2012年

1
面白い!私はそのことを知りませんでした^=(マニュアルへのリンクを投稿したときに、自分で初めて見ました)。しかし、キャッシュされたクエリについてのあなたのポイントは良いものです。
a_horse_with_no_name 2012年

1
@Dems:ではOracle、ブール値はファーストクラスの型ではありませんSQL(これはとは異なりますPL/SQL)。I. e。SELECT 1 = 1 FROM dual他のシステムでは気に入らないものがあります。唯一の論理的文脈(で有効な演算子の独自のセット持ってブールだからWHEREか、HAVINGまたは同様の句を)。NOTOracle SQL(AFAIK)で唯一のブール否定演算子です。
Quassnoi

3
¬= -- worked on some obscure platforms in the dark ages-ええ、それらは「IBMメインフレーム」と呼ばれていました。男性が男性であった日から、女性は女性であり、恐竜は地球を歩き回り、コンピューターは水冷されました。:-)
ボブジャービス-モニカを復活

1

大学では、上記のすべてのオペレーターが同じ機能を持っていますが、雇用主のために働くときに!=を使用することが「ベストプラクティス」であると教えられました。


14
SQL標準(のみ)は<>「等しくない」演算子として定義されています。私が使用して検討するように、「ベストプラクティス」として
a_horse_with_no_name

2
面白い。私が学んだ他のすべてがSQL標準かどうかをチェックする必要があるかもしれません。指摘してくれてありがとう。

11
おそらく私のCの遺産は出てきますが、私は我慢できず<>、好きではありません!=。主に<>、私には、「以下」または「より大きい」と言っているのは、データ型が暗黙の順序付けであると想定しているようです(すべてのSQLデータ型に当てはまりますが、必ずしもそうではありません)!=。非常に純粋な意味で。
ジェフリーケンプ

1
コーディング標準は多くの場合、雇用主に依存しています。雇用主がコーディング標準を持っていない場合は、チームが公開標準を選択することをお勧めします。
Denise Skidmore 2018年

-3

この記事によると、!=はより高速に実行されます

http://www.dba-oracle.com/t_not_equal_operator.htm


18
そのウェブサイトは人気がありますが、残念ながら多くのトピックに関する信頼できる情報源ではありません。この問題については、以前にここで説明しまし。賞金にもかかわらず、パフォーマンスの顕著な違いを示すテストケースを作成することはできませんでした。しかし、私の申し出はまだ有効です。!=が他の等しくない演算子よりも速いことを示すテストケースを作成できる場合は、500ポイントの賞金を差し上げます。
Jon Heller
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.