SQL语句中CASE WHEN用法

众所周知,一个应用程序的业务逻辑处理代码如果能放在SQL里完成,无疑会极大的提高程序运行的效率,因此能够精简前台代码,放在SQL里完成是一件不错的决定,这里有句具有代表性的SQL语句可以说明这一点:
select (case when Completed='0' then '未完成' else '已完成' end) as Completed from Work

在数据库Work表里,Completed是char(1)类型,用来表示工作完成与否,但前台界面我们肯定需要得到文字性的显示,如未完成、已完成,如果直接提出Completed字段再在前台代码里做判断也未尝不可,只不过一句SQL语句就能完成的工作你要用几行代码才完成,相信没人愿意这样做了。

还有好多类似的SQL语法可以组合成功能强大的SQL语句,但这里要声明一点,如果组合的结果是一个庞大的SQL语句,那么不如放到存储过程里完成吧,因为那样效率更高,你说呢?

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [SQL] 的这些文章也感兴趣:

Entity SQL Language 一 简介
SQL取表中随机记录的语句
将表数据生成SQL脚本的存储过程
理解.NET中的数据库连接池
IBatis.Net使用方法之二:两种常用的DAO
网络SQL入侵与防范高级篇
SQL语言入门教程:第三课 数据查询
将一个表分开导出成不同文件的实用方法
SQL之行列互变问题
跟NHibernate之夏一起学习NHibernate