SQL 更新语句,会的麻烦进来帮忙下
一个列车表有字段TrianName(列车名)和Speet(速度)。
更新提速,要求K字头的列车保持不变、T字头的列车提速20%,Z字头的列车提速25%。请问这样的更新语句怎么些的?是要一条语句写完,SET后面怎么根据条的判断而变化20%和25%的提速呢???
[解决办法]
- SQL code
update tb set Speet=case left(TrianName,1) when 't' then Speet*(1.25)when 'z' then Speet*(1.25)else Speetend
[解决办法]
update tb set Speet=(case when substring(TrianName,1,1)='K' then Speet
when substring(TrianName,1,1)='T' then (Speet+Speet*0.2)
when substring(TrianName,1,1)='Z' then (Speet+Speet*0.25)
end )
[解决办法]
可以用存储过程判断,可参考语句:
declare @Name varchar(100)
select id from dbo.[Table1] where TrianName=@Name
if @Name='K'
update dbo.[Table1] set Speet='' where TrianName=@Name
else if @Name='Z'
update dbo.[Table1] set Speet='' where TrianName=@Name
[解决办法]
[解决办法]
用case when then
[解决办法]
- SQL code
update table1 set Speet=case left(TrianName,1) when 't' then Speet*(1.25)when 'z' then Speet*(1.25)else Speetend