あなたの投稿には不完全な情報がありますが、私はこれを突き刺します.
justAND
演算子のチェーンでは、返されるすべての行に対してすべての式が true と評価される必要があります。これは重力と同じくらい基本的なことです。
要するに、AND
機能しますが、期待どおりに機能しません。
ここで起こっている可能性が高いのは、質問に関連していないと思われる他の式がクエリに含まれていることです。
例えば
SELECT Column1,
Column2,
Column3
FROM myTable
WHERE Column1 = 'abc'
AND Column2 = 123
AND column3 = 'zyx'
OR Column3 = 'xyz'
以下とは論理的に完全に異なります。
SELECT Column1,
Column2,
Column3
FROM myTable
WHERE Column1 = 'abc'
AND Column2 = 123
AND (column3 = 'zyx'
OR Column3 = 'xyz')
最初の例では、一般的に受け入れられている操作の順序は、クエリを次のように評価します。
(Column1 = 'ABC AND Column2 = 123 AND column3 = 'zyx')
上記のすべてが真でなければならないことを意味します
OR Column3 = 'xyz'
AND
ケース 1 では、操作が true と評価されるかどうかに関係なく、column3 が「xyz」に等しいすべての行が返されます。and 演算または OR 演算のいずれかが true の場合は、私に行を与えてくださいと言っています。
SQL で式を別の方法で評価する場合は、ケース 2 のように括弧を使用して優先度を指定する必要があります。
詳細については、msdn operator precedenceを参照してください。AND は OR よりもずっと前に評価されることがわかります。
また、実際のクエリを投稿していただければ、問題の正確な場所についてヘルプでより具体的に説明できます。