Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как правильно написать CASE ? / 6 сообщений из 6, страница 1 из 1
26.01.2022, 15:30
    #40129636
Morskoi_kotik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно написать CASE ?
Подскажите, пожалуйста!

Есть ID магазинов, а также поле с наименованием продукции.

Мне нужно сделать через CASE если ID =1 и наименование продукта содержит слово "Молоко", то надо чтобы выводилось "Молочные продукты в магазине №1", а если просто ID =1 а в поле нет слова "Молоко" надо чтобы выводило "Остальные продукты в магазине №1"

Я прописываю так:

CASE
WHEN ID =1 AND PRODUCT_NAME LIKE '%Молоко%'
THEN 'Молочные продукты в магазине №1'
WHEN ID =1 AND PRODUCT_NAME NOT LIKE '%Молоко%'
THEN 'Остальные продукты в магазине №1'
END

Но отфильтровывает только по первой части WHEN ID =1 AND PRODUCT_NAME LIKE '%Молоко%'
THEN 'Молочные продукты в магазине №1'. А по второй нет ((

Подскажите, почему так? Как можно иначе прописать, чтобы разделить это?
...
Рейтинг: 0 / 0
26.01.2022, 15:45
    #40129643
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно написать CASE ?
Morskoi_kotik,

Какие ещё не молочные продукты есть в магазине 1 ??
...
Рейтинг: 0 / 0
26.01.2022, 15:48
    #40129645
Morskoi_kotik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно написать CASE ?
PaulWist,

перечень определенный есть и может меняться
...
Рейтинг: 0 / 0
26.01.2022, 16:05
    #40129657
baracs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно написать CASE ?
Morskoi_kotik,

Код: sql
1.
2.
3.
4.
CASE WHEN PRODUCT_NAME LIKE '%Молоко%'
	THEN 'Молочные продукты в магазине №' + CAST([ID] AS varchar(50))
	ELSE  'Остальные продукты в магазине №' + CAST([ID] AS varchar(50))
END
...
Рейтинг: 0 / 0
26.01.2022, 20:31
    #40129763
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно написать CASE ?
Morskoi_kotik
Но отфильтровывает только по первой части
А по второй нет ((
А у меня всё правильно отфильтровывает

Похоже, у вас сервер бракованный, с багами.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
with t as(
	select 1 as ID, N'Молоко' as PRODUCT_NAME
	union all
	select 1 as ID, N'Бухло' as PRODUCT_NAME
)
select
	CASE
		WHEN ID =1 AND PRODUCT_NAME LIKE '%Молоко%'
		THEN 'Молочные продукты в магазине №1'
		WHEN ID =1 AND PRODUCT_NAME NOT LIKE '%Молоко%'
		THEN 'Остальные продукты в магазине №1'
	END
from t
...
Рейтинг: 0 / 0
28.01.2022, 09:08
    #40130143
Morskoi_kotik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно написать CASE ?
Всех благодарю за ответы! Оказалось у меня данные кривые в базе были ((
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как правильно написать CASE ? / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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