Почему CASE WHEN действует в этом запросе в обратном направлении? - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь использовать 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
  • Все остальное сохраняет свое текущее имя

Теперь я ожидал, что запрос для этого результата будет таким, какой у меня есть в настоящее время, без каких-либо «НЕ» до операторов «НРАВИТСЯ», и я совершенно сбит с толку, что это работает, я пытаюсь понять, что происходит.

...