sql 经常使用的语句(个人)

本文介绍了一种使用SQL实现字段累加更新的方法,通过游标遍历指定ID范围内的记录并进行累加操作。同时展示了如何利用SQL生成指定范围内的随机数。
--产生随机数 75-85
ROUND(((85 - 75 -1) * RAND() + 75), 0)
--累加更新字段



DECLARE @id numeric

DECLARE @total_electric varchar(20)
DECLARE @total_energy varchar(20)
DECLARE @total_water varchar(20)

DECLARE @total_electricT varchar(20)  
DECLARE @total_energyT varchar(20)
DECLARE @total_waterT varchar(20)

SET @total_electricT=0
SET @total_energyT=0
SET @total_waterT=0

DECLARE My_Cursor CURSOR --定义游标
FOR (SELECT id,total_electric,total_energy,total_water FROM tablename WHERE id>=20320 AND id<=20331) --查出需要的集合放到游标中  
OPEN My_Cursor
FETCH NEXT FROM My_Cursor INTO @id,@total_electric,@total_energy,@total_water

WHILE @@FETCH_STATUS = 0  
    BEGIN  

SET @total_electricT=CONVERT(FLOAT,@total_electricT)+CONVERT(FLOAT,@total_electric)
SET @total_energyT=CONVERT(FLOAT,@total_energyT)+CONVERT(FLOAT,@total_energy)
SET @total_waterT=CONVERT(FLOAT,@total_waterT)+CONVERT(FLOAT,@total_water)

UPDATE tablename SET total_electric=@total_electricT,total_energy=@total_energyT,total_water=@total_waterT WHERE id=@id;

    FETCH NEXT FROM My_Cursor INTO @id,@total_electric,@total_energy,@total_water; --读取下一行数据  
    END  
CLOSE My_Cursor; --关闭游标  
DEALLOCATE My_Cursor; --释放游标  
GO
--float 经常会长度不够变成科学计数法,并且小数位数不可控  用

cast('123.22' as DECIMAL)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值