mysql 根据某一列的值 进行行转列
时间: 2023-07-26 08:15:30 浏览: 97
如果你想要根据某一列的值进行行转列,可以在上面提到的方法中增加一个 WHERE 子句来选择需要转换的行。下面是一个示例查询,将订单表中的订单项转换为列,并且只转换订单项状态为“已发货”的数据:
```
SELECT
order_id,
MAX(CASE WHEN item_number = 1 THEN product_name ELSE NULL END) AS item_1_name,
MAX(CASE WHEN item_number = 1 THEN quantity ELSE NULL END) AS item_1_quantity,
MAX(CASE WHEN item_number = 2 THEN product_name ELSE NULL END) AS item_2_name,
MAX(CASE WHEN item_number = 2 THEN quantity ELSE NULL END) AS item_2_quantity,
MAX(CASE WHEN item_number = 3 THEN product_name ELSE NULL END) AS item_3_name,
MAX(CASE WHEN item_number = 3 THEN quantity ELSE NULL END) AS item_3_quantity
FROM
order_items
WHERE
status = '已发货'
GROUP BY
order_id;
```
这将返回一个结果集,其中只包含订单项状态为“已发货”的数据,并将每个订单项的名称和数量作为列进行展示。
阅读全文