2
我有一個玩家表,一個表和一個team_players表(使用SQLServer 2005)。並非所有的玩家都在一個團隊中。我想製作一個查詢,它將爲每個非球隊球員返回一行,併爲每個團隊返回一行(即,有一個結果行代表尼克斯隊中所有20名球員,結果排只包含尼克斯隊的team_id ,但是所有非團隊玩家都會在結果集中獲得自己的具有唯一player_id的行)。針對來自兩個字段(其中一個通常爲空)的不同數據進行查詢
目前我試圖讓我的結果集僅僅由一個列的,和我做它像這樣:
SELECT DISTINCT ISNULL(tp.team_id, p.player_id) FROM players p
LEFT JOIN team_players tp ON tp.player_id = p.id
我的問題是:我怎樣才能讓這個查詢由團隊訂購與大多數球員DESC,然後由非球隊球員按字母順序排列球員姓名?這可能與我目前的查詢基地?我是否應該使用不同的方法,例如可能是UNION,以使其成爲可能?
看起來這正是我一直在尋找。謝謝喬。說實話,在看到這個回覆之前,我對CTE並不熟悉。時間做一些閱讀:)。 – danjat 2010-08-24 18:32:08
您可以使用[使用通用表格表達式](http://msdn.microsoft.com/zh-cn/library/ms190766.aspx)開始閱讀,然後當您真的準備好玩一些時,請閱讀[遞歸查詢使用公用表表達式](http://msdn.microsoft.com/zh-cn/library/ms186243.aspx) – 2010-08-24 18:35:31