2011-11-03 18 views
6

なぜ同じことをするような2つの異なる論理演算子(< = &!)があるかは、もう一方では?SQLの "より小さいか等しい"& "より大きい"

+0

個人的には、私は決してどこでも、どの言語でも使用される '!>'を見たことがありません。その有効な構文はどこですか? –

+0

いいえ。RDBMSに両方がある場合は同等です。 –

+0

http://msdn.microsoft.com/en-us/library/aa276867(v=SQL.80).aspx – harryovers

答えて

7

< =と>は論理演算子ではなく比較演算子です。 !論理演算子である(NOTを意味する)。あなたが結合するとき! >と比較演算子を反転するだけで、最終結果が同じになります。

と言えば、< =は一般的な形式なので、他に何もない場合は読みやすくすることが望ましいと言えます。パフォーマンスのメリットがあるかどうかはわかりませんが、私はそれを疑っています。

編集: また、あなたはあなたが扱っているSQLのフレーバーを言っていません。 @ harryoversが指摘しているように、それはMS-SQLの有効な演算子ですが、どこでも動作するわけではありません。

+0

参考:http://beginner-sql-tutorial.com/sql-operators.htm – ddrace

0

あなたは論理的な論理演算子は、私は見たことがないANDORであると言う!あなたは!=<>を参照している場合>私は、彼らが同じである<>

を見てきました。

+0

http://msdn.microsoft.com/en-us/library/aa276867(v=SQL.80).aspx – harryovers

+0

これを使用したことはありません。それでも、それはどのように動作するか、私は推測する猫の皮膚にちょうど異なる方法を変更しません。 – JonH

4

私はなぜあなたがもう一方を使用するのかわかりませんが、!>はISO規格にはありません。それに基づいて、<=が好ましい方法です。

1

いいえ、違いはありません。私が考えることができるのは、特定の文脈でより人間が読めるようにすることだけです。

など。同じ理由で、文脈にある程度の制限を表すに重要性があった場合は、<= 4ではなく< 5を使用します。

1

!=!<!>は、標準的な比較演算子ではなく、少数のシステムでサポートされている、SQL-Serverは一つである:msdn: Comparison Operators (Transact-SQL)。 MySQLは!=もサポートしていますが、それ以外の2つはサポートしていません。

同等の標準SQL比較演算子は<>,>=および<=です。

すべての状況で、私は標準を好むでしょう。

4

!>別の方法は、SQLをXMLに簡単に入れられるようにするための1つの理由です。コードを別のプラットフォームに移行する必要があります。小なり記号はXMLタグを導入します。 <のSQLがXMLまたはHTMLに含まれている場合は、& LT;としてエスケープする必要があります。より大きい記号は、それより前に小記号が付いていない限り、特別なものを意味するものではありません。

関連する問題