SELECT RowID,BaseDeptID,BaseDeptName
FROM
(
select
RowID=ROW_NUMBER() OVER(PARTITION BY Affair_instance.BaseDeptID ORDER BY Affair_instance.BaseDeptID*RAND()),
Affair_instance.BaseDeptID,MAX(Affair_instance.BaseDeptName) AS BaseDeptName
from Affair_instance
Where
Affair_instance.IsDeleted=0
GROUP BY Affair_instance.BaseDeptID
) AS TMP
WHERE RowID<=50
ORder by BaseDeptName,RowID
SELECT TOP 10 * FROM Affair_instance ORDER BY RAND()*CHECKSUM(NEWID())