Предложение WHERE в SQL Server View не фильтрует результаты - PullRequest
0 голосов
/ 17 апреля 2020

У меня сложное представление, что я пытаюсь добавить фильтры или исключения при использовании предложения WHERE. Код представления:

SELECT
---OMITTED COMPLEX LOGIC

WHERE
--EXCLUSIONS BEGIN HERE

--records with DATES = "10/01/XXXX" and TIMES = NULL excluded
DATES not like '%10/01/%' or times is not NULL

Я вижу записи с ДАТАМИ, такими как "10/01/1985" и TIMES = NULL, возвращенными, когда я просто выбираю представление, которое я ожидал бы из условия WHERE в представлении выше, чтобы удалить.

results from above query

Вторая часть моего вопроса, как только я могу понять, что я делаю неправильно, и правильно сконфигурируйте представление так, чтобы оно возвращало строки с отфильтрованными вышеупомянутыми критериями, что произойдет, если в оператор SELECT самого представления добавится предложение where? Заменяет ли он предложение WHERE, встроенное в представление, или будет работать с отфильтрованным набором после предложения WHERE?

1 Ответ

0 голосов
/ 17 апреля 2020

Во-первых, может быть проблема AND и OR в предложении WHERE. Пожалуйста, используйте предложения AND и OR с надлежащими круглыми скобками (чтобы лучше связать его), чтобы правильно распространить свое мышление в код.

Во-вторых, фильтр для представления будет действовать как дополнительный фильтр к отфильтрованному набору данных.

...