Я пытаюсь использовать CASE WHEN для группировки нескольких возможных значений в представлении SQL. Это работает, но в обратном направлении, и я хотел бы понять, почему.
SELECT DISTINCT
name,
CASE
WHEN name NOT LIKE '%Value1%' THEN 'Group1'
WHEN name NOT LIKE '%Value2%' THEN 'Group2'
WHEN name NOT LIKE '%Value3%' THEN 'Group3'
ELSE name
END AS 'filtered name'
FROM sometable;
Это фактически дает мне вывод, который мне нужен:
- Все, что содержит Value1, помещается в Group1
- Все, что содержит Value2, помещается в Group2
- Все, что содержит Value3, помещается в Group3
- Все остальное сохраняет свое текущее имя
Теперь я ожидал, что запрос для этого результата будет таким, какой у меня есть в настоящее время, без каких-либо «НЕ» до операторов «НРАВИТСЯ», и я совершенно сбит с толку, что это работает, я пытаюсь понять, что происходит.