powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Почему не работает конструкция в WHERE ?
8 сообщений из 8, страница 1 из 1
Почему не работает конструкция в WHERE ?
    #40112923
Morskoi_kotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, пожалуйста!

Задаю условие в WHERE:

WHERE DATE>='2020-01-01'

AND PROD_DATE >= '2020-03-01'

AND PROD_DATE < '2021-04-01'

AND CATEGORY = 5 AND (PROD_NAME NOT LIKE '%Молочн%' OR PROD_NAME NOT LIKE '%МОЛОЧН%' OR PROD_NAME NOT LIKE '%мясн%' )


Т.е. мне нужно выбрать все товары, которые относятся к категории 5 и НЕ содержат в наименовании слово молочные и мясные (в разных склонениях). При этом слово молочные может быть записано в разных регистрах. Так вот, данная конструкция у меня не работает. Если закомментить --AND (PROD_NAME NOT LIKE '%Молочн%' OR PROD_NAME NOT LIKE '%МОЛОЧН%' OR PROD_NAME NOT LIKE '%мясн%' ) и раскомментить, то выводится одна и та же сумма. А если пропишу вот так, например:
WHERE DATE>='2020-01-01'

AND PROD_DATE >= '2020-03-01'
AND PROD_DATE < '2021-04-01'

AND CATEGORY = 5 AND PROD_NAME NOT LIKE '%Молочн%'

то по слову Молочн фильтрует. Где я ошибаюсь?
...
Рейтинг: 0 / 0
Почему не работает конструкция в WHERE ?
    #40112925
Oleg_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Morskoi_kotik,

потому что если МЯСО, то (и не похоже на "молоко" или не похоже на "мясо") - сработает как не похоже на "молоко" )))

"Короче" - OR заменить на AND
...
Рейтинг: 0 / 0
Почему не работает конструкция в WHERE ?
    #40112926
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Morskoi_kotik,

автор
Код: sql
1.
2.
3.
AND PROD_DATE >= '2020-03-01'

AND PROD_DATE < '2021-04-01'

BETWEEN ?

авторPROD_NAME NOT LIKE '%Молочн%' OR PROD_NAME NOT LIKE '%МОЛОЧН% UPPER ?
...
Рейтинг: 0 / 0
Почему не работает конструкция в WHERE ?
    #40112933
Morskoi_kotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Oleg_SQL,

Я попробую так. Ща не за компом. Но я как то фильтравал точно такой же конструкцией, только там нужно было отобрать позиции, которые содержат определенные слова. Но в текущем случае я не пойму почему не подходит OR
...
Рейтинг: 0 / 0
Почему не работает конструкция в WHERE ?
    #40112935
Oleg_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Morskoi_kotik,

я же выше написал

МЯСО проверяем:

Не похоже на молоко? Нет - дальше условие что оно не похоже на мясо уже не действует...
А если не похоже И на молоко И на мясо - тогда сработает
...
Рейтинг: 0 / 0
Почему не работает конструкция в WHERE ?
    #40112941
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Morskoi_kotik,

and not (молоч или мясн или птиц)
...
Рейтинг: 0 / 0
Почему не работает конструкция в WHERE ?
    #40112992
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Morskoi_kotik,

Укажите в для строк запросе регистронезависимый COLLATE. Легче будет.
...
Рейтинг: 0 / 0
Почему не работает конструкция в WHERE ?
    #40113478
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gerasimenko
Morskoi_kotik,

автор
Код: sql
1.
2.
3.
AND PROD_DATE >= '2020-03-01'

AND PROD_DATE < '2021-04-01'

BETWEEN ?

авторPROD_NAME NOT LIKE '%Молочн%' OR PROD_NAME NOT LIKE '%МОЛОЧН% UPPER ?

Вопросы начинающего юзера:

1. вы уверены, что там between? не ошибка?
2. если не сложно - зачем там UPPER ?
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Почему не работает конструкция в WHERE ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]