我正在尝试构建的查询将使用 tableA 中的以下列:
查询应提供以下过滤器:
这是我当前的陈述,它给了我除了重复描述之外的所有内容。如何将其添加到我当前的陈述中?
选择
DISTINCT name FROM tableA WHERE description NOT LIKE 'Any%' AND description NOT LIKE 'Deleted%'
按名称排序
答案 0 :(得分:1)
你应该尝试使用自我加入 使用左侧表格筛选以“任意”或“已删除”开头的说明。由于您要消除具有重复描述的行,因此您只能选择右侧匹配的行具有相同描述但找不到其他名称的结果:
SELECT
leftSide.name,
leftSide.description
FROM
tableA as leftSide
LEFT JOIN tableA as rightSide ON (
leftSide.description = rightSide.description AND
leftSide.name <> rightSide.name
)
WHERE
rightSide.description IS NULL AND
leftSide.description NOT LIKE 'Any%' AND
leftSide.description NOT LIKE 'Deleted%'
GROUP BY
leftSide.name, leftSide.description
ORDER BY
leftSide.name
答案 1 :(得分:0)
SELECT
DISTINCT name FROM tableA
WHERE description NOT LIKE 'Any%','Deleted%'
ORDER BY name
答案 2 :(得分:0)
这会是您正在寻找的解决方案吗?
参考:SQLFIDDLE
查询:
select distinct name, des
from data
where des not like '%any%'
and des not like '%delete%'
order by name ASC;
结果:
NAME DES
mary yeah all or none
tim yeah all or none
you did you see he is in
答案 3 :(得分:0)
SELECT t.name 来自tableA AS t GROUP BY t.name 有COUNT(*)= 1和t.description不喜欢'任何%'和t.description不喜欢'删除%' ORDER BY t.name;