在 SQL 服务器中进行内部联接后将行转换为列
Convert Rows to columns after inner join in SQL Server
在 INNER JOIN
之后我得到 6 行,相同 location_id
,相同 location_name
但图像值不同,
每个location_id
有6张对应的图片,as this image
但我想将图像行转换为列 (img1, img2, img3 ... img6
)
所以最终结果 table 将是 [location_id, location_name, 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
示例 SQL Fiddle: http://sqlfiddle.com/#!3/e89d94/2
在 INNER JOIN
之后我得到 6 行,相同 location_id
,相同 location_name
但图像值不同,
每个location_id
有6张对应的图片,as this image
但我想将图像行转换为列 (img1, img2, img3 ... img6
)
所以最终结果 table 将是 [location_id, location_name, 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
示例 SQL Fiddle: http://sqlfiddle.com/#!3/e89d94/2