SQL 进行内连接时删除重复项 header

SQL Remove Duplicate header when doing inner join

我正在尝试删除重复的 Header 我的查询...

here's my query

Select  po.BranchOrderNumber,pod.ItemCode, pod.ItemDescription From  RetailPosOrders po 
INNER JOIN RetailPosOrderDetails pod
ON po.BranchOrderID = pod.OrderID

我的查询结果现在看起来像这样。

现在我想要的是这样的。

提前致谢。我打算在 Report builder 上使用它。我正在使用 Microsoft Sql Server 2014。

Mssql server 本身无法做到这一点

我认为如果要使用控制台/win/web 应用程序显示它,则必须在应用程序级别执行此操作。

这是最好在应用程序级别完成的转换类型。在 SQL 中是可能的,但请记住 SQL 查询和结果集——默认情况下——是无序的。您想要的结果有一个排序。

但是,您可以使用 row_number():

Select (case when row_number() over (partition by po.BranchOrderNumber order by pod.ItemCode) = 1
             then po.BranchOrderNumber else ''
        end) as BranchOrderNumber
       pod.ItemCode, pod.ItemDescription
From RetailPosOrders po INNER JOIN
     RetailPosOrderDetails pod
     ON po.BranchOrderID = pod.OrderID
Order by po.BranchOrderNumber, pod.ItemCode;

这假设 po.BranchOrderNumber——尽管它的名字——被存储为一个字符串(前导零表明是这种情况)。

此外,还有几件重要的事情:

  • 外部 order by 需要与 over 子句中使用的字段相同。
  • 字段需要唯一定义结果集中的每一行。 SQL 中的 order by 不稳定,这意味着具有相同值的键可以以任何顺序出现,即使对于同一查询的不同运行也是如此。