SQL Server将行转换为列

时间:2015-03-16 18:31:44

标签: sql-server

不确定这是否可行,订单可以链接到任意数量的合约,Id喜欢显示所有合约&来自同一个orderno的值在一行中。我尝试过使用Pivot,但我不认为我对Pivot有足够的经验来解决这个问题。以下是当前数据的显示方式:

OrderNo Contract Value
1       Con1    5000
1       Con2    10000
2       Con3    2000
3       Con4    500
3       Con5    2000
3       Con6    1000

这就是我要显示数据的方式:

OrderNo  Contract    Value   Contract2   Value2  Contract3   Value3
1        Con1        5000    Con2        10000   NULL        NULL
2        Con3        2000    NULL        NULL    NULL        NULL
3        Con4        500     Con5        2000    Con6        1000

感谢您的任何建议!

1 个答案:

答案 0 :(得分:-1)

Here is an article可以帮助您了解如何构建动态SQL数据透视图。有一些事情需要记住......如果您需要包含的合同数量异常大,那么您的动态SQL语句可能会变得太大而无法容纳到您的varchar变量中。此外,性能可能会非常糟糕。因此,请了解您的数据并根据需要进行过滤。但这应该给你的输出看起来非常像你要求的。 (如果每份合约需要2列数据,那么你必须要有创意。但我怀疑这就足够了。)