私が現在行っているコースでは、次のように WHERE 句で括弧を使用しています。
SELECT bar
FROM Foo
WHERE (CurrentState = 'happy');
これは標準SQLですか?
そうでない場合、なぜそれらを使用するのですか?
私が持っているDate & Darwenの本では使われていないようです.
編集
明確にするために-1992年のSQL標準について言及しています
はい。かっこを使用して where 句のコンポーネントをバインドできます。これはあなたの例では必要ありませんが、複数のand
andor
コンポーネントがある場合は、操作の正しい順序を確保するため、または単にクエリを自己文書化するために括弧が必要になる場合があります。
例 1:
select *
from foo
where
(class='A' and subclass='B')
or (class='C' and subclass='D')
and
例 1 では、は よりも厳密にバインドされるため、括弧は厳密には必要ありませんor
が、以下の例 2 のように、複数のor
条件を で結び付けたand
場合、正しい結果を得るために括弧が必要になります。
例 2:
select *
from foo
where
(class='A' or class='B')
and (subclass='C' or subclass='D')
どちらの場合でも使用します。クエリ オプティマイザーと同じように頭の中で SQL を解析する必要がないためです。
それらはオプションです。これらは、より複雑な WHERE ステートメントに適しています。
... WHERE (created > '2012-10' AND created < '2013-01')
OR (modified > '2012-10' AND modified < '2013-01')