У меня есть следующий код (я использую базу данных Northwind), который дает мне результат, показанный на этой картинке
SELECT a.FirstName, a.TitleOfCourtesy, a.Notes, c.CustomerYear
FROM employees a
INNER JOIN orders b
ON a.EmployeeID = b.EmployeeID
LEFT JOIN customers c
ON b.CustomerID = c.CustomerID
WHERE a.TitleOfCourtesy = 'Ms.';
Код выше объединяет три таблицы и выбирает только строкис a.TitleOfCourtesy = 'Ms.'
Из результата я хочу взять строки, которые имеют %1992%
в столбце a.Notes
, и показать только те строки, которые имеют c.CustomerYear
, равный 1992 году. Поэтому на рисунке ранее ядолжен видеть только вторую верхнюю строку видимым.
Я думал, что смогу использовать синтаксис CASE + WHEN для создания своего рода оператора IF, но я получаю только недопустимое использование синтаксиса в строке CASE.Должна ли часть CASE перемещаться после части WHERE или я использую ее совершенно неправильно?
SELECT a.FirstName, a.TitleOfCourtesy, a.Notes, c.CustomerYear
CASE
WHEN a.Notes LIKE '%1992%' THEN c.CustomerYear LIKE '1992'
ELSE NULL END
FROM employees a
INNER JOIN orders b
ON a.EmployeeID = b.EmployeeID
LEFT JOIN customers c
ON b.CustomerID = c.CustomerID
WHERE a.TitleOfCourtesy = 'Ms.';
Как мне думать, чтобы достичь желаемого результата?