Для удобства чтения я был бы склонен использовать оператор in
, как правильно предложил Гордон Линофф, но чтобы предложить более лаконичную альтернативу, вы также можете использовать like
оператор следующим образом:
select * from qryPOExamDetail where [Job Number]= "*" and [LookUp] like "1[02345]0M"
Также обратите внимание, что:
[Job Number]= "*"
Соответствует Job Number
, точно равному *
, и не , использующий звездочку в качестве оператора подстановки для сопоставления всех возможных значений Job Number
.
Чтобы сопоставить все значения, используйте like
оператор для этого поля, например:
[Job Number] like "*"
Причина, по которой исходный запрос возвратил все , кроме , где LookUp = "100M"
связано с приоритет оператора .
Оператор and
имеет приоритет над оператором or
, что означает, что ваш исходный запрос ...
SELECT *
FROM qryPOExamDetail
WHERE
[Job Number]= '*' AND [LookUp] = '100M'
OR [LookUp] = '120M'
OR [LookUp] = '130M'
OR [LookUp] = '140M'
OR [LookUp] = '150M'
... читает:
"Выберите все из таблицы qryPOExamDetail
, где Job Number
равно *
и LookUp
равно '100M'
или где LookUp
равно'120M'
, или где LookUp
равно '130M'
... "
Здесь приоритет оператора свободно переводится в пунктуацию в приведенном выше предложении.
Следовательно,очевидно, что нет записи, для которой значение Job Number
равно *
, а значение LookUp
равно '100M'
, для этой комбинации критериев запись не возвращалась.