t-sql:学术型,寻找更高效/更好的查询方式

t-sql:学术型,寻找更高效/更好的查询方式,sql,group-by,union,Sql,Group By,Union,这段代码很有效,但看起来很“老派”。有没有人有更好的方法在一个查询中选择和分组?基本上,这只是一个通用设置,有一个单标题表、一个小标题表(用于皮卡)、一个小标题表(用于下车)和每个表的详细信息表 select h.id ,h.col1 as Customer ,h.col2 as Req ,d.subid as DropId ,d.col1 as DropCity ,d.col2 as DropLoc ,dd.detid as DropDetailId ,dd.co

这段代码很有效,但看起来很“老派”。有没有人有更好的方法在一个查询中选择和分组?基本上,这只是一个通用设置,有一个单标题表、一个小标题表(用于皮卡)、一个小标题表(用于下车)和每个表的详细信息表

 select h.id
  ,h.col1 as Customer
  ,h.col2 as Req
  ,d.subid as DropId
  ,d.col1 as DropCity
  ,d.col2 as DropLoc
  ,dd.detid as DropDetailId
  ,dd.col1 as DropSpot
  ,dd.col2 as DropAWBorPackage
  ,NULL as PickupId
  ,NULL as PickUpCity
  ,NULL as PickUpLoc
  ,NULL as PickupDetailId
  ,NULL as PickupLoc
  ,NULL as PickupAWBorPackage
 from [scratch].GenericHeader h
   inner join [scratch].GenericSubHeader d on d.id = h.id
   inner join [scratch].GenericDetail dd on dd.id = h.id
     and dd.id = d.id
     and dd.subid = d.subid
 UNION ALL   
  select h.id
   ,h.col1 as Customer
   ,h.col2 as Req
   ,NULL as DropId
   ,NULL as DropCity
   ,NULL as DropLoc
   ,NULL as DropDetailId
   ,NULL as DropSpot
   ,NULL as AWBorPackage
   ,p.sub2id as PickupId
   ,p.col1 as PickUpCity
   ,p.col2 as PickUpLoc
   ,pp.det2id as PickupDetailId
   ,pp.col1 as PickupLoc
   ,pp.col2 as PickupAWBorPackage
  from  [scratch].GenericHeader h
    inner join [scratch].GenericSubHeader2 p on p.id = h.id
    inner join [scratch].GenericDetail2 pp on pp.id = h.id
      and pp.id = p.id
      and pp.sub2id = p.sub2id
  order by Req,DropId,DropDetailId,PickupId,PickupDetailId

我认为没有办法在一条SQL语句中获得相同的数据。您可能需要执行两个SQL查询,一个用于下车数据,另一个用于取货数据。

谢谢——我也这么认为,但我只是想确定这不仅仅是一种“习惯的力量”