AND論理演算子です。 &連結演算子です。Access 2007 で使用できるさまざまな演算子の詳細については、演算子の表を確認してください。
アクションの違いを確認するには、これを table として開始しますWeinerDog。
id field1 field2
1 a
2 y
3
field1および列の空白はfield2Null 値を表します。
次に、次のクエリを実行します。
SELECT
WeinerDog.id,
WeinerDog.field1,
WeinerDog.field2,
(WeinerDog.field1 Is Null)
& (WeinerDog.field2 Is Null) AS concat_result
FROM WeinerDog
WHERE
(WeinerDog.field1 Is Null) & (WeinerDog.field2 Is Null);
そのクエリにより、次の結果セットが得られるはずです。
id field1 field2 concat_result
1 a 0-1
2 y -10
3 -1-1
列を調べconcat_resultます。連結された 2 つの式の真偽値である文字列が含まれます。これらの真理値は、True (-1) または False (0) のいずれかです。ただし、連結の結果は文字列でなければならないため、数値の真理値は結合される前にまず文字列としてキャストされます。
WHERE次に、句を調べます。WHEREdb エンジンは、句が として評価されるすべての行を提供しますTrue。実際には、-1 だけでなく、ゼロ以外の非 Null 値が の代わりになりTrueます。列からわかるようconcat_resultに、これらの行はどれも句Falseによってゼロ ( )として評価されないWHEREため、テーブル内のすべての行がクエリ結果セットに含まれます。
WHEREを代入ANDするように句を変更する&と、クエリは と の両方が Null である行 (id=3) のみを返しWeinerDogます。 field1field2
WHERE
(WeinerDog.field1 Is Null) AND (WeinerDog.field2 Is Null);