目前有下表:
+---------+------------+
| Name | Number |
+---------+------------+
| John | Supp#10 |
| John | 1150-20 |
| Doe | 1140-09 |
+---------+------------+
John同时拥有Supp#10和1150-20值。 Doe只有1140-09而不是Supp%xx值。这个Supp#可以以任何数字结尾。
我要求的结果如下
+---------+
| Name |
+---------+
| Doe |
+---------+
由于Doe没有任何以Supp#开头的值,但在语法中有一个数字'% - %'
我尝试了以下
select name from t where number like '%-%' and number not like 'Support%'
但这显然不起作用,我似乎无法弄清楚如何让它发挥作用。
答案 0 :(得分:1)
这是一种方式:
select name
from t
group by name
having sum(case when number like 'Supp#%' then 1 else 0 end) = 0;
答案 1 :(得分:0)
您可以使用联接和
的有效结果select distinct name
from t
inner join(
select name
from t
where number not like 'Supp%'
) t2 on t.name = t2.name
where number like '%-%'