SELECT p.*, x.*FROM Projects pCROSS APPLY ( SELECT TOP 1 * FROM ProjectCategory pc WHERE pc.ProjectID = p.ProjectID ORDER BY NEWID()) x
/*SELECT p.*, x.*FROM ProjectCategory pcCROSS APPLY ( SELECT TOP 1 * FROM Project p WHERE pc.ProjectID = p.ProjectID ORDER BY NEWID() -- p.ProjectID) x*/use AdventureWorks2008goset statistics io ongo--"any of", for example ordered by ProductIDSELECT CategoryName = x.Name, SampleProductName = pc.Name FROM Production.ProductSubcategory pcCROSS APPLY ( SELECT TOP 1 * FROM Production.Product p WHERE pc.ProductSubcategoryID = p.ProductSubcategoryID ORDER BY p.ProductID) x/*Table 'Product'. Scan count 1, logical reads 395, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.Table 'ProductSubcategory'. Scan count 1, logical reads 2, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.*/go-- pseudo randomSELECT CategoryName = x.Name, SampleProductName = pc.Name FROM Production.ProductSubcategory pcCROSS APPLY ( SELECT TOP 1 * FROM Production.Product p WHERE pc.ProductSubcategoryID = p.ProductSubcategoryID ORDER BY newid()) x/*Table 'Product'. Scan count 37, logical reads 555, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.Table 'ProductSubcategory'. Scan count 1, logical reads 2, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.*/goset statistics io off