首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL 更新语句,会的麻烦进来帮忙下解决方法

2012-03-26 
SQL 更新语句,会的麻烦进来帮忙下一个列车表有字段TrianName(列车名)和Speet(速度)。更新提速,要求K字头的

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 

[解决办法]
探讨
一个列车表有字段TrianName(列车名)和Speet(速度)。
更新提速,要求K字头的列车保持不变、T字头的列车提速20%,Z字头的列车提速25%。请问这样的更新语句怎么些的?是要一条语句写完,SET后面怎么根据条的判断而变化20%和25%的提速呢???

[解决办法]
用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 

热点排行