如何将数据库中表的一行数据,转化为一列数据进行显示?

原始数据: 

 

DROP TABLE IF EXISTS medical_info;

CREATE TABLE medical_info(
id INT PRIMARY KEY not NULL auto_increment,
bm VARCHAR(32) DEFAULT '急诊科',
lxmc VARCHAR(20),
lx VARCHAR(10),
sl INT,
je DECIMAL(5,2)
);

INSERT INTO medical_info(lxmc,lx,sl,je)
VALUES('检查','05',7,480.00),('放射','07',3,140.00),('成药','02',1,198.00),('西药','01',3,106.48),('治疗','04',20,46.00),('化验','06',3,15.00);

SELECT * from medical_info;

-- 将一行数据转换为一列进行显示,同时匹配不到的时候,价格默认为0

 转换后:

SELECT
bm,
SUM(CASE
WHEN lxmc = '西药' THEN je
END )AS '西药',
SUM(CASE
WHEN lxmc = '成药' THEN je
END )AS'成药',
SUM(CASE
WHEN lxmc = '草药' THEN je           --草药是图中je(金额)为0的一项,所以图中没显示出来,但想在最后的结果中显示
ELSE 0 END )AS'草药',
SUM(CASE
WHEN lxmc = '治疗' THEN je
END )AS '治疗',
SUM(CASE
WHEN lxmc = '检查' THEN je
END )AS '检查',
SUM(CASE
WHEN lxmc = '化验' THEN je
END )AS '化验',
SUM(CASE
WHEN lxmc = '放射' THEN je
END )AS '放射'
FROM medical_info;

 

转载于:https://www.cnblogs.com/jasontsui71/p/10733639.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值