方法一:使用CASE WHEN语句:
SELECT
  id,
  MAX(CASE WHEN column_name = 'column_name1' THEN value END) AS column_name1,
  MAX(CASE WHEN column_name = 'column_name2' THEN value END) AS column_name2,
  ...
FROM table_name
GROUP BY id;
方法二:使用PIVOT 函数
SELECT *
FROM table_name
PIVOT (
  MAX(value) FOR column_name IN ('column_name1', 'column_name2', ...)
);