0
我有以下表中的数据:如何使用动态SQL或透视从SQL Server中的行创建列?
name | serviceName | contractNo | materialNo
--------------------------------------------
item1 managed foo 123456 A6Ax33444
item1 managed bar 534454 A6A3222x7
这是我需要的结果:
name | serviceName1 | contractNo1 | materialNo1 | serviceName2 | contractNo2 | materialNo2
item1 managed foo 123456 A6Ax33444 managed bar 534454 A6A3222x7
这个例子只包含两个服务的名称,但有可能是零到约10个不同的服务。
我尝试了几个使用像这样的旋转和动态SQL查询SQL Server: Examples of PIVOTing String data或Combine multiple rows into multiple columns dynamically in SQL Server,但无法让它工作。
使用多个连接查询实际数据,'name'来自一个表,'serviceName','contractNo'和'materialNo'是从另一个连接的,并且有更多的列,但内容是一样。
感谢您的帮助!
不应有在通过动态SQL做一个问题:首先声明一个变量,这需要计数的总数(不同)和thenrepeat从0到变数和Concat的一个字符串...但问题是:您以后如何处理表格?正如你所提到的,有可能有0到10列......所以也许现在你创建一个最多10列的表......明天你会得到第11排 - 现在呢?此外:即使你不把它存储在一个表中,但只显示在某种报告中:该行的大小是多少?为什么不以某种形式的表/树显示它 – Tyron78
@ Rene:感谢您的评论。整个东西用于EF6调用的存储过程,然后显示在ASPxGrid(devexpress)中。 – Jan