当前位置:K88软件开发文章中心编程语言SQLSQL01 → 文章内容

sql的update语句中也可以使用case来判断

减小字体 增大字体 作者:佚名     来源:asp编程网  发布时间:2018-12-30 9:14:11

今天在使用asp更新后台一个产品信息的时候,遇到一个问题:将放入仓库中的产品和审核通过的产品发布时间更新到当前发布时间,并将仓库中的产品放到审核通过中去,将推荐的产品的发布时间更新到当前时间,状态不改变。
status=1,2时,将产品的updatetime改成当前时间,并且将status改成1
status=3时,将产品的updatetime改成当前时间

'功能:sql update语句中也可以使用case
'作者:wangsdong
'来源:www.aspprogram.cn
'
表:product
ID productname status updatetime
___________________________________________

p1 
 
 
 
 
 
 
 
 
 
 
 

 
 
2010-01-01 01:01:01

p2 
 
 
 
 
 
 
 
 
 
 
 

 
 
2010-01-01 01:01:01

p4 
 
 
 
 
 
 
 
 
 
 
 

 
 
2010-01-01 01:01:01

其中:status的意思
1 审核通过的产品
2 放入仓库中的产品
3 推荐中的产品


方法一:
使用asp全部读取,然后再使用asp判断,再更新。缺点:太浪费时间了,效率还不高。

方法二:
使用sql语句更新
update product set status=1,updatetime=getdate() where status=1 or status=2
update product set updatetime=getdate() where status=3
需要两句sql来解决

方法三:
现在利用case来两句sql语句合并成一句
update product set UpdateTime=GetDate(),status=(case when status=3 then '3' else '1' end)
搞定。太方便了,如果status还有其它状态,只要在else前面再加上when status=4 then '4' when

status=5 then '5'&hellip
&hellip

注意:这样的语句不支持access数据库。



sql的update语句中也可以使用case来判断