select distinct uid from tb k where exists(select * from tb where k.uid=uid and xmname='XXX') and exists(select * from tb where k.uid=uid and xmname='YYY') SQL code:
IF object_id('tb')IS NOT NULL DROP TABLE tb CREATE TABLE tb(uid INT,xmname VARCHAR(5)) INSERT INTO tb SELECT 1, 'xxx'UNION ALL SELECT 1 ,'YYY' UNION ALL SELECT 1 ,'ZZZ'UNION ALL SELECT 2 ,'AAA'UNION ALL SELECT 2 ,'BBB'UNION ALL SELECT 3 ,'CCC'UNION ALL SELECT 4 ,'DDD'
SELECT * from ( SELECT DISTINCT uid,xmname=stuff((SELECT ','+xmname from tb WHERE uid=a.uid FOR xml path('') ),1,1,'') from tb a )c WHERE charindex('xxx,YYY',xmname)>0