MySQL中的行列转换通常涉及到两个主要的SQL函数:PIVOT
和UNION
。不过需要注意的是,MySQL本身并不直接支持PIVOT
函数,但可以通过组合使用CASE
语句和GROUP BY
来实现类似的功能。
SELECT
语句的结果集。CASE
语句和GROUP BY
实现。假设我们有一个销售数据表sales
,结构如下:
CREATE TABLE sales (
product_id INT,
sale_date DATE,
quantity INT
);
如果我们想将每个产品的销售数量按日期转换为列,可以使用以下查询:
SELECT product_id,
MAX(CASE WHEN sale_date = '2023-01-01' THEN quantity ELSE NULL END) AS '2023-01-01',
MAX(CASE WHEN sale_date = '2023-01-02' THEN quantity ELSE NULL END) AS '2023-01-02',
-- ... 其他日期
FROM sales
GROUP BY product_id;
这个查询将每个产品的销售数量按日期转换为列。
sale_date
,然后构建动态的SELECT
语句。请注意,以上链接仅供参考,实际使用时请确保链接的有效性和安全性。
领取专属 10元无门槛券
手把手带您无忧上云