日期:2014-05-16  浏览次数:20616 次

数据库sql语句在where中同样可以使用条件判断
★★★ 本篇为原创,需要引用转载的朋友请注明:《 http://stephen830.iteye.com/blog/280573 》 谢谢支持! ★★★

在一般情况下,SQL的条件判断语句都是用在select后面,例如mysql的if条件判断,或者oracle的decode条件判断,当然其他的数据库大家可以自己测试下,几乎很少会把条件判断用在where后面。

相信很多朋友都没有试过,其实至少mysql,oracle是完全支持的,你完全可以在SQL语句的where后面用条件判断语句。

下面有个具体的例子:


测试的数据表为 user_info ,数据表的数据如下图(图1)


(图1)

假如我们在这个表中查出 name为 mike或者Jerry的数据记录,一般都会写成:
SELECT * FROM user_info where name='mike' or name='Jerry'
或者
SELECT * FROM user_info where name in('mike','Jerry')


其实也可以利用在where后面加上条件判断语句来写,如:

mysql写法:
SELECT * FROM user_info where if(name='mike',name='mike',name='Jerry')


oracle写法:
SELECT * FROM user_info where name=decode(name,'mike','mike','Jerry')


查询的结果都是一样的,如下图(图2)

(图2)


当然,具体的使用还是要根据实际情况来决定,本文只是说明下,SQL中的条件判断不仅在select后面适用,同样也可以用在where后面。

------------------------------------------
分享知识,分享快乐,希望文章能给需要的朋友带来小小的帮助。




1 楼 reyos 2008-11-27  
不错,收藏了
2 楼 helyho 2008-11-30  
mysql的不知道但是 oracle的这个方法经常用的

oracle 有个case when...then end;