【根据条件更新某列的很多行】sql语句

文章讲述了如何使用SQL的CASEWHEN语句来转换数据库中dose_unit_rx列的数据,特别是将单位为mg的dose_val_rx值转换为g,通过CAST和ROUND函数处理数据,确保结果保留两位小数。
摘要由CSDN通过智能技术生成

根据条件更新某列的很多行sql

 需求:需要将下面单位列dose_unit_rx的列中单位为mg的dose_val_rx值换算成单位为g的:

利用case when 语句
在这里插入图片描述

    SELECT 
            CAST( pr.dose_val_rx AS DECIMAL(10,2)) AS dose_val_rx
				 --dose_unit_rx  有g,gm,mg三种单位,这里单位为mg的换算成g的
			, CASE   WHEN dose_unit_rx='mg'
			         THEN  round(CAST( pr.dose_val_rx AS DECIMAL(10,2))/1000,2)
			         ELSE  CAST( pr.dose_val_rx AS DECIMAL(10,2))  end AS doses     

这里新增了一列doses就是所需要的更新列,因为原表中dose_val_rx是varchar类型,所以这里需要利用cast函数转化成小数,最后保留两位小数利用了round函数。
结果如下:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值