在SQL Server中内部联接后将行转换为列
在在SQL Server中内部联接后将行转换为列,sql,sql-server,pivot,Sql,Sql Server,Pivot,在内部连接之后我得到了6行,相同的位置\u id,相同的位置\u名称,但图像值不同, 每个位置\u id有6个对应的图像 但我想将图像行转换为列(img1、img2、img3…img6) 因此,最终结果表将是[位置id、位置名称、img1、img2、img3、img4、img5、img6] 如何生成结果?假设您最多只有6张图像 select location_id, location_name, [1] as img1, [2] as img2, [3] as
内部连接之后
我得到了6行,相同的位置\u id
,相同的位置\u名称
,但图像值不同,
每个位置\u id
有6个对应的图像
但我想将图像行转换为列(img1、img2、img3…img6
)
因此,最终结果表将是[位置id、位置名称、img1、img2、img3、img4、img5、img6]
如何生成结果?假设您最多只有6张图像
select
location_id, location_name,
[1] as img1,
[2] as img2,
[3] as img3,
[4] as img4,
[5] as img5,
[6] as img6
from
(
select
location_id, location_name,img_name,
row_number() over(partition by location_id order by img_name) rn
from innrjointbl
)s
PIVOT
(MAX(img_name) for rn in ([1],[2],[3],[4],[5],[6])) p