2016-04-27 13 views
-2

:> = 10 ホイールと質量はない作品のこの色を選択して、私は4つのアイデアWHERE NOT SQL命令

  1. select color from A where not(name='wheel') and mass>=10
  2. select color from A where mass>=10 and not(name='wheel')
  3. select color from A where not name='wheel' and mass>=10
  4. を持っています
  5. select color from A where (not name='wheel') and mass>=10

正しい?最初は確かにOKだと思いますが、残りはどうですか?

+3

4つの異なるバージョンを試してみてください。あなたのテーブルにいくつかのNULL値を持つことを忘れないでください。 (彼らは初心者を混乱させる傾向があります) – jarlh

+1

Aから名前を選択します。 –

+0

私は<>と!=について知っていますが、NOTを使う必要があります – tabaluga2012

答えて

1

は、私は通常のキーワード(のように、存在)のみと<をキープ>または!=反転テストのためではありません使用します。それは慣例だが、私は、クエリのこの種のほぼすべての時間を参照してくださいわからない:http://www.sqlstyle.guide/、NOTキーワードの良い使い方について何も:

select color from A where name != 'wheel' and mass >= 10 

をここで構文の参考です。

しかし、4つのクエリを「正しい」と考えることができます。その中に一つだけの要素があるので

カッコはここmathemathical行動、の有無にかかわらず、あなたの例のそれぞれで同じ結果を持っています。明快

select color from A where name <> 'wheel' and mass >= 10 
0

使用これをあなただけのもこの上で私の2 pencesを入れて<>または!=

0

ため

0

を使用するだけで一つのテーブル、その優れたを持っていたよう:いずれにおいても

RDBMS演算子NOT<>は、通常、クエリの最も消費の多いタスクになります。可能であれば、それらを避けるのは常に良いことです。時にはそれは不可能ですが、時にはそうです。

例としてクエリを撮影:表Anameが非常に低いカーディナリティを持っている場合、あなただけの設計によって固定されているいくつかの異なるnamesを持つことができますつまり、それは彼らにすべてが、「ホイール」を一覧表示する方が良いでしょう、したがって、避けるNOT<>

select color 
from A 
where name IN ('something','somethingelse','anotherthing') 
    and mass >= 10