SQL查询,像树一样按顺序联合
你好,我有一个类似的问题SQL查询,像树一样按顺序联合,sql,sql-server,sql-order-by,union,Sql,Sql Server,Sql Order By,Union,你好,我有一个类似的问题 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行的顺序不像一棵树。我尝试了一些其他的
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行的顺序不像一棵树。我尝试了一些其他的组合,但没有成功。
如果要根据数字对数据集进行排序,请将代码和联合放入公共表表达式中,然后使用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
我实现了它,有一个列,其中第1-16行已排序。但我没有比示例中的orderby更多的可能性,因为我还必须在row number命令中指定orderby。报告是正确的,只有第2行和第3行必须放在其他行中。我不知道用简单的订货方式是否可行-UBD-RLS--RLS基尔--DetailData--DetailData-RWM--Neuenburg--DetailData--DetailData--Unterlüß--DetailData--DetailData