将一行值转换为多列

时间:2018-05-26 05:48:02

标签: sql-server tsql

这是我的问题:

select
    t1.id
    ,t1.name
    ,t3.description
    ,t3.amount
from
    table1 (nolock) t1
join 
    table2 (nolock) t2 on t1.t2_id = t2.id
join 
    table3 (nolock) t3 on t2.t3_id = t3.id

结果:

t1.id | t1.name  | t3.description  | t3.amount
------+----------+-----------------+----------
 1    | TEST     | TEST DESC. 1    |   100
 1    | TEST     | TEST DESC. 2    |   200

我想要的结果是什么:

t1.id | t1.name  | TEST DESC. 1  | TEST DESC. 2
------+----------+---------------+--------------    
  1   | TEST     |    100        |    200

t3.description中的值并不总是相同的。可能会有很多不同的。

我一直试图调查Pivots,但我似乎无法绕过它。我提供的查询是一个更大的查询的非常简化的版本,但如果我可以让它工作,我应该能够使它适用于更大的查询。

感谢大家的建议。

1 个答案:

答案 0 :(得分:2)

Dynamic Pivot

<ul>
<li><a class="active" href="#home">Home</a></li>
<li><a href="#news">Contact</a></li>
<li class="dropdown"><a href="#contact" class="dropbtn">Games</a>
 <div class="dropdown-content">
  <a href="#">PUBG</a>
  <a href="#">Fortnite</a>
  <a href="#">PUBG Mobile</a>
</div>
</li>
<li style="float:right"><a href="#about">About</a></li>
</ul>