Sql “选择列”列表中联接表的多行值

Sql “选择列”列表中联接表的多行值,sql,sql-server,tsql,join,pivot,Sql,Sql Server,Tsql,Join,Pivot,我有两张表,Order和Order\u Tag 在订单标签表中,每个订单都有一个或多个条目 订单表格: 订单键 订单号 1. ABCD 2. CDEF 3. 吉吉 您可以使用条件聚合。我会使用APPLY: select o.*, ot.* from orders o cross apply (select max(case when ot.tagName = 'IntemNumber' then TagValue end) as IntemNumber, ma

我有两张表,
Order
Order\u Tag

订单标签
表中,每个
订单都有一个或多个条目

订单
表格:

订单键 订单号 1. ABCD 2. CDEF 3. 吉吉
您可以使用条件聚合。我会使用
APPLY

select o.*, ot.*
from orders o cross apply
     (select max(case when ot.tagName = 'IntemNumber' then TagValue end) as IntemNumber,
             max(case when ot.tagName = 'ItemDescription' then TagValue end) as ItemDescription,
             max(case when ot.tagName = 'ItemWeight' then TagValue end) as ItemWeight
      from order_tag ot
      where ot.OrderKey = o.OrderKey
     ) ot;

您使用的是哪种DBMS产品?“SQL”只是所有关系数据库使用的查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加。你试过什么?你在哪里卡住了?让我们看看你的尝试。我三次尝试加入订单标签表。有一种更简单的方法可以通过枢轴来实现这一点。这是否回答了您的问题?你也可以用它