如果有人可以更新一下标题,更好地反映我的问题,那就太感激了。我认为我在寻找答案时遇到了困难,因为我不知道正确的搜索术语。
以下是一个示例设置:If I have the following values in a table:
TableID TableSensitivity ----------------------------- 1 aSensitivity 1 aRevision 2 bRevision 3 cRevision 3 cSensitivity
How can I filter the values containing "Revision" only for each TableID where the is already a value containing "Sensitivity". This is the expected output:
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
TableSensitivity
拆分为两列。第一列是第一个字母,第二列是其余部分。然后您可以控制分组并搜索敏感度。 - SS_DBA关键字
之前的字母也有意义,理论上可以拆分出来以获得更好的控制。 - SS_DBA