SQL检索唯一ID

| 我有一个包含以下数据的表:
ID   NAME    ATTRIBUTE   CODE
=============================
1     XX         MM        GC
1     XX         ST        GC
2     ZZ         LL        GC
2     ZZ         ST        GC
3     AA         MM        PC
我需要表中的名称“ 1”,其中包含“ 2”属性或“ 3”代码,但不能同时包含两者。就像查询应该只检索2和3而不是1那样的ѭ1数字。 我怎么做?     
已邀请:
        
Select Id, Name

From #t
Where (Attribute = \'MM\' Or Code = \'GC\')
And Id Not In (Select Id From #t 
                Where (Attribute = \'MM\' And Code = \'GC\'))
    
        
select distinct T1.ID,
                T1.NAME
from T as T1
where (T1.ATTRIBUTE = \'MM\' or T1.CODE = \'GC\') and
      not exists (select *
                  from T as T2
                  where T1.ID = T2.ID and
                        T2.Attribute = \'MM\' and
                        T2.CODE = \'GC\')
结果:
ID  NAME
2   ZZ
3   AA
    
        尝试这个:
select distinct ID
from TableName
where (Attribute = \'MM\' or Code = \'GC\')
  and not (Attribute = \'MM\' AND Code = \'GC\')
    
        尝试这个:
SELECT ID, NAME
  FROM <YOUR-TABLE-NAME>
 WHERE 
 (ATTRIBUTE = \'MM\' AND CODE <> \'GC\') OR
 (ATTRIBUTE <> \'MM\' AND CODE = \'GC\') ;
    
        选择不同的ID,名称 来自tbl? 哪里 (属性= \'MM \'或代码= \'GC \') 而不是(属性= \'MM \'和代码= \'GC \')     
        
(
    SELECT ID, NAME FROM TableName WHERE CODE = \'GC\'
    EXCEPT
    SELECT ID, NAME FROM TableName WHERE ATTRIBUTE = \'MM\'
)
UNION
(
    SELECT ID, NAME FROM TableName WHERE ATTRIBUTE = \'MM\'
    EXCEPT
    SELECT ID, NAME FROM TableName WHERE CODE = \'GC\'
)
    

要回复问题请先登录注册