Если бы кто-то мог обновить заголовок, чтобы лучше отразить мой вопрос, я был бы очень признателен. Я думаю, что изо всех сил пытался найти ответ, потому что я не знаю правильных условий поиска.
Если в таблице есть следующие значения:
TableID TableSensitivity
-----------------------------
1 aSensitivity
1 aRevision
2 bRevision
3 cRevision
3 cSensitivity
Как я могу отфильтровать значения, содержащие "Revision" только для каждого TableID, где находится
уже значение, содержащее «Чувствительность». Это ожидаемый результат:
TableID TableSensitivity
-----------------------------
1 aSensitivity
2 bRevision
3 cSensitivity
Вот пример настройки:
DECLARE @Example TABLE (TableID INT, TableSensitivity VARCHAR(200))
INSERT INTO @Example(TableID, TableSensitivity) VALUES (1, 'aSensitivity')
INSERT INTO @Example(TableID, TableSensitivity) VALUES (1, 'aRevision')
INSERT INTO @Example(TableID, TableSensitivity) VALUES (2, 'bRevision')
INSERT INTO @Example(TableID, TableSensitivity) VALUES (3, 'cSensitivity')
INSERT INTO @Example(TableID, TableSensitivity) VALUES (3, 'cRevision')
Я пытался использовать CASE для определения строк с чувствительностью и решил, что могу использовать MAX для фильтрации, но не смог заставить его работать:
SELECT TableID
, TableSensitivity
, CASE WHEN TableSensitivity LIKE '%Sensitivity' THEN 1 ELSE 0 END 'SomeKey'
FROM @Example