Сортировка данных из одного столбца в несколько на MariaDB

Рейтинг: 0Ответов: 1Опубликовано: 05.07.2023

Есть таблица в базе данных, в которой данные представлены в следующем виде:

| id | attribute | value |
| 69 | Capacity  | 1.6 l |
| 69 | Power     | 99 PS |

Как можно вывести данные из такой таблицы в приведённом ниже виде?

| id | Capacity | Power |
| 69 | 1.6 l    | 99 PS |

Написал, что-то подобное, но там NULL через раз вылетает.

SELECT DISTINCT
    id,
    CASE attribute WHEN 'Capacity' THEN value END AS capacity,
    CASE attribute WHEN 'Power' THEN value END AS powerr,
FROM passanger_car_attributes
WHERE id = 69

Ответы

▲ 0

Помог Akina из комментариев, на что ему большое спасибо. Действительно PIVOT)

SELECT DISTINCT
    id,
    MAX(CASE attribute WHEN 'Capacity' THEN value END) AS capacity,
    MAX(CASE attribute WHEN 'Power' THEN value END) AS powerr,
FROM passanger_car_attributes
WHERE id = 69
GROUP BY id