似乎你想在一列上得到不同。
希望能烏爾使用SQL Server 2005或以上
Select First_Name,Last_Name,P_Id
FROM
(
Select First_Name,Last_Name,P_Id
Row_Number() Over (Partition By P_Id Order By First_Name) As RNum
From Table1) T1
WHERE T1.RNum = 1
想法是指定PID組內不同的行數,然後得到一個與ROWNUMBER = 1
對於SQL Server 2000
Select Distinct First_Name,Last_Name,P_ID
From Table1 T1
INNER JOIN
(
Select Min(First_Name) First_Name,P_ID
From Table1 T1
Group By P_ID
) T2 ON T1.P_ID = T2.P_ID AND T1.First_Name = T2.First_Name
注意:如果兩行具有相同的P_ID和First_Name且不同的Last_Name,它將返回2行。我正在檢查。
另一種方法是使用標識列創建臨時表。然後,在內部查詢中使用min(First_Name),而不是在P_ID中使用min(Idenity)組,並且在join中我們將使用P_ID和identity作爲join。
所以你想爲每個不同的LName隨機行? – MartW 2010-01-14 09:42:36