我想转换输出,如
BachNo|Release Qty
----------
A |10
A |30
A |40
B |90
B |30
我想将此结构转换为
BatchNO | Qty Release1 | Qty Release2 | Qty Release3
----------------------------------------------------
A | 10 | 30 | 40
B | 90 | 30 | Null
第一个输出中生成的行数是动态的,因此转置输出可以有n个列
答案 0 :(得分:1)
见下文links
Efficiently convert rows to columns in sql server
如果仍然没有在google上找到搜索,那么各种technical sites
上有很多例子
https://www.google.co.in/?gws_rd=ssl#q=Convert+Rows+Into+Columns+SQL+Server
答案 1 :(得分:0)
对于已知数量的列可能,但对于动态列数不太确定。虽然你可以使用这样的东西,然后在处理时进一步拆分它。
SELECT BatchNo , STUFF(( SELECT ','+ ReleaseQty FROM TableName a
WHERE b.BatchNo = a.BatchNo FOR XML PATH('')),1 ,1, '') Members
FROM TableName b
GROUP BY BatchNo;
这应该给你一个类似的输出:
BatchNo | ReleaseQty
-------- | ------------------------
A | 10,30,40
B | 90,30