SELECT
b.u2_id,
a.material_id,
MAX(
CASE b.target_id
WHEN '171220360770501' THEN
b.column_value
ELSE
''
END
) AS 171220360770501_target,
MAX(
CASE b.target_id
WHEN '171220353803921' THEN
b.column_value
ELSE
''
END
) AS 171220353803921_target
<IF test = "idList.size>0" >,
<foreach item = "item" collection = "idList" SEPARATOR = "," INDEX = "index">
MAX(
CASE b.target_id
WHEN #{item.materialId} THEN
b.column_value
ELSE
''
END
) AS ${item.materialId}_target
</foreach >
</IF >
FROM
xxxxx a
JOIN yyyyy b ON b.u2_id = a.id
WHERE
a.`status` = 0
GROUP BY
b.u2_id,
a.material_id,
通过 case when + max() 函数,实现查询的行转列
************ if标签中的写法是 mybatis 中写法