minus在Oracle中表示两个结果集的交集,也就是说两个条件都成立的集合,那在mssql中用and就可以了是吧!或者主外键 select name from table1 a,table2 b where a.name=b.name 再或者把结果集a查出来再在a中按b的条件查: SELECT A.* FROM #WAN A,( SELECT [NAME] FROM (SELECT * FROM #WAN GROUP BY [NAME],[TIME]) T GROUP BY [NAME] HAVING COUNT([TIME])=(SELECT COUNT(*) FROM (SELECT [TIME] FROM #WAN GROUP BY [TIME]) [TIME]) ) B WHERE A.[NAME]=B.[NAME] ORDER BY A.[TIME],A.[NAME]