SQL 查询 - 按问题排序
SQL Query - Order by issue
当我在table中有重复的订单时,数据显示如下。首先是所有 header 记录,然后是该特定订单的所有行记录。
OrderNo Column1
300 Header
300 Header
300 Line
300 Line
200 Header
200 Line
200 Line
预期输出:
OrderNo Column1
300 Header
300 Line
300 Header
300 Line
200 Header
200 Line
200 Line
我需要将此数据导出到 excel 文件中。所以我需要一个正确的记录序列,即Order1,Header,Line 然后 Order2 Header,Line
我如何使用 sql 实现此目的?
您可以在 order by
子句中使用 row_number()
插入 headers 和行:
select t.*
from t
order by orderno,
row_number() over (partition by orderno, column1 order by ?);
?
用于确定行中最终排序的任何列。如果你不在乎,你可以使用 orderno
.
当我在table中有重复的订单时,数据显示如下。首先是所有 header 记录,然后是该特定订单的所有行记录。
OrderNo Column1
300 Header
300 Header
300 Line
300 Line
200 Header
200 Line
200 Line
预期输出:
OrderNo Column1
300 Header
300 Line
300 Header
300 Line
200 Header
200 Line
200 Line
我需要将此数据导出到 excel 文件中。所以我需要一个正确的记录序列,即Order1,Header,Line 然后 Order2 Header,Line 我如何使用 sql 实现此目的?
您可以在 order by
子句中使用 row_number()
插入 headers 和行:
select t.*
from t
order by orderno,
row_number() over (partition by orderno, column1 order by ?);
?
用于确定行中最终排序的任何列。如果你不在乎,你可以使用 orderno
.