2013-07-09 52 views
1

你好,我有一個像SQL查詢,聯盟訂購就像一棵樹

SELECT 4 AS sortf,XX FROM Table GROUP BY Y 
UNION 
SELECT 1 AS sortf,XX FROM Table GROUP BY Y 
UNION 
SELECT 2 AS sortf,XX FROM Table GROUP BY Y 
UNION 
SELECT 3 AS sortf,XX FROM Table GROUP BY Y 
ORDER BY 3,2 

我的問題查詢爲該線2和3 AR沒有下令像一棵樹。我嘗試了一些其他組合,但它沒有奏效。 enter image description here

回答

0

,如果你想按數字排序的數據集把你的代碼和工會成一個公共表表達式和使用ROW_NUMBER()函數產生行號,這樣的事情:

WITH CTE 
AS 
(
    SELECT 4 AS sortf, productid FROM Production.Products 
    UNION 
    SELECT 1 AS sortf,productid FROM Production.Products 
    UNION 
    SELECT 2 AS sortf,productid FROM Production.Products 
    UNION 
    SELECT 3 AS sortf,productid FROM Production.Products 
) 
SELECT *, ROW_NUMBER() OVER (ORDER BY productid) AS SortOrder 
FROM CTE 
ORDER BY SortOrder 
+0

我實現它有一個列1-16行,並排序。但在我的例子中,我沒有比oder更多的可能性,因爲我必須在行號命令中指定順序。該報告是正確的,只有第2行和第3行必須放在其他行中。 – janor

+0

我想要像下面這樣的結構。我不知道是否可以用簡單的命令。 -UBD --RLS --- RLS基爾 ---- DetailData ---- DetailData --RWM ---納沙泰爾 ---- DetailData ---- DetailData ---翁特爾呂斯 ---- DetailData ---- DetailData – janor