sql语句中的判断功能的使用方法
来源:www.aspparogram.cn
作者:wangsdong
原创文章,转载请保留以上信息
以前没有发现的一种sql语句的用法:今天遇到了,发现省了许多事。
假设表名为:qqq
表的字段:id(自动编号), username(用户名),status(状态),mtime(时间字段)
现在在access中建这样的表,录入一些数据
insert into qqq(username,status) values(‘aaa’,’0′)
insert into qqq(username,status) values(‘bbb’,’1′)
……
status=0为未审核,status=1为审核通过
以前我要将status显示出来方法是使用asp判断做的,根据rs("status")来判断,当等于0的时候,使用response.write输出“未审核”;当等于1的时候,使用response.write输出“已审核”
现在的方法是直接使用sql语句来解决这个问题
select username,status,case when status=’1′ then ‘已审核’ else ‘未审核’ end as statused from qqq order by id desc
哎,在access中运行,出错。
现在我们在sql server中建立这样的表,录入同样数据,再运行一下这句,看看是什么。这样在statused中直接显示出来中文状态,asp程序中我就直接将这些信息输出就可以了,省去了asp中对这些状态的判断了。
这个只是两种状态的情况,如果我现在再插入一条数据,用来表示三种状态:
insert into qqq(username,status) values(‘ccc’,’3′)
这样就有了三种或者是三种以上的状态,sql语句还是能解决这个问题,解决的方法是:
select username,status,case when status=’1′ then ‘已审核’ when status=’0′ then ‘未审核’ else ‘不明’ end as statused from qqq order by id desc
再运行一下,是不是我们要的结果了吧