高度なフィルタリングデータ

- 高度なデータフィルタリングキーワード:WHERE句| NOT演算子INと

- 句組み合わせ(WHERE句の指定された複数の2つの方法で使用される:ANDまたはOR句の句のようにして)。

- AND演算子(追加条件にWHERE句に対応する)
SELECT PROD_ID、prod_price、PROD_NAME
Productsからの
vend_id = 'DLL01' AND prod_price <= 4;。

- AND句2つのフィルタ条件の唯一最大の理由は、あなたは、より多くのフィルタを追加するキーワードを使用する必要があり、各条件間ですることができます

- OR演算子(最初の条件が満たされたときにラインがDBMSに、任意の検索条件に一致し、第二の状態に関係なく、それぞれの行の取得され満足する)
SELECT PROD_NAMEは、prod_price
製品のFROM
WHERE vend_id = 'DLL01' OR vend_id = ' BRS01';

-評価の順序(節はANDとOR演算子の任意の数を含むことができる)(両方のANDとOR結合複合体は、高度なフィルタであってもよい)
prod_price、SELECT PROD_NAME
Productsからのを
WHERE vend_id = 'DLL01' = OR vend_id 'BRS01'
AND prod_price> = 10;

私たちは、オペレータが価格の$ 10の上方BRS01だけでなく、任意の価格にまとめDLL01のエラーであることを引き起こし、結果の出力は、私たちの期待に応えていないか、または演算子、優先AND演算子を扱うときに、その理由はSQLであることを見つけます出力誤った結果を引き起こして。

ソリューションは、明示的にグループの事業者に括弧を使用することです。

SELECT PROD_NAME、prod_price
Productsから
(vend_id = 'DLL01' OR vend_id = 'BRS01')
AND prod_price> = 10;

- (括弧内の有効な値を含む、コンマ基によって分離された)(各条件の範囲内で、条件の範囲を指定する一致させることができる)演算子IN
SELECT PROD_NAME、prod_price
Productsからの
WHEREが「IN(vend_idをDLL01 '' BRES01「)
PROD_NAME BY ORDER。

-----------------------
SELECT PROD_NAME、prod_price
Productsから
vend_id = 'DLL01' OR vend_id = 'BRS01'
ORDER BY PROD_NAME。

IN演算子とOR演算出力とほぼ同等の結果を(二つの同じ、違いはDBMSによって引き起こされることが表帳の結果は、表には、外部接続に影響を与える可能性がある)を使用して、ここが見つかりました。ただし、次のような利点は、おそらく、IN演算子で見つけることができます:

より明確かつ直感的な構文1.IN演算子。

2.INオペレータが管理する場合は、評価順序容易に使用(AND / OR)と混合しました。

3.IN操作符一般比一组OR操作符执行得更快。

4.IN操作符最大的优点是可以包含其他SELECT语句,能够更动态地简历WHERE字句。

-- NOT操作符(特点:从不单独使用;用在过滤的条件前后都可以)(功能:WHERE子句中用来否定其后条件的关键字)
SELECT prod_name
FROM Products
WHERE NOT vend_id = 'DLL01'
ORDER BY prod_name;

等同于

SELECT prod_name
FROM Products
WHERE vend_id <> 'DLL01'
ORDER BY prod_name;

在简单的WHERE子句中NOT优势并不明显,但是在更加复杂的子句中,NOT非常有用。比如和IN操作符联合使用,可以非常简单地找出与条件列表不匹配的行。

おすすめ

転載: www.cnblogs.com/ao-yu-a/p/11070333.html