sql中的行转列函数

sql中的行转列函数

可以使用 CASE 语句来实现行转列。

假设有一个表 my_table,其结构如下:
CREATE TABLE my_table (
    id INT,
    value VARCHAR(50),
    column_name VARCHAR(50)
);

INSERT INTO my_table (id, value, column_name) VALUES
(1, 'apple', 'column1'),
(1, 'banana', 'column2'),
(1, 'cherry', 'column3'),
(2, 'date', 'column1'),
(2, 'elderberry', 'column2'),
(2, 'fig', 'column3');

使用 CASE 语句将行转换为列:
SELECT id,
       MAX(CASE WHEN column_name = 'column1' THEN value END) AS column1,
       MAX(CASE WHEN column_name = 'column2' THEN value END) AS column2,
       MAX(CASE WHEN column_name = 'column3' THEN value END) AS column3
FROM my_table
GROUP BY id;

输出结果将是:
id  column1    column2       column3
1   apple      banana        cherry
2   date       elderberry    fig

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值