在mysql中过滤组
我从一个表中得到了以下示例数据在mysql中过滤组,sql,sql-server,sql-except,Sql,Sql Server,Sql Except,我从一个表中得到了以下示例数据 Id Dsc 500001 INSURED 500001 THIRD PARTY 500001 THIRD PARTY 500001 THIRD PARTY 500002 INSURED 500002 THIRD PARTY 500003 INSURED 500004 BROKER 500005 CLAIMANT 我希望提取那些Dsc既不是“被保险人”也不是“经纪人”的ID。由于这两列都有重复的数据,我为此设计了以下查询 Select
Id Dsc
500001 INSURED
500001 THIRD PARTY
500001 THIRD PARTY
500001 THIRD PARTY
500002 INSURED
500002 THIRD PARTY
500003 INSURED
500004 BROKER
500005 CLAIMANT
我希望提取那些Dsc既不是“被保险人”也不是“经纪人”的ID。由于这两列都有重复的数据,我为此设计了以下查询
Select Id from table1 where Dsc not in ('Insured', 'Broker')
Except
Select Id from table1 where Dsc in ('Insured', 'Broker')
是否有其他方法可以执行此操作?使用此代码停止重复列
Select distinct *from table1
将子查询用于相同的:
Select id,dsc from (select id,dsc from table1 group by id, dsc)
where dsc not in('Insured', 'Broker')
您可以将查询编写为:
SELECT Id FROM (
SELECT Id , SUM(CASE WHEN Dsc IN ('INSURED','BROKER') THEN 1 ELSE 0 END ) AS Condition
FROM @Test
GROUP BY Id
) T
WHERE Condition = 0
您的数据库是什么?它是MSSQL数据库。
SELECT Id FROM (
SELECT Id , SUM(CASE WHEN Dsc IN ('INSURED','BROKER') THEN 1 ELSE 0 END ) AS Condition
FROM @Test
GROUP BY Id
) T
WHERE Condition = 0