日期:2014-05-19  浏览次数:20696 次

关于CASE WHEN THEN END 的不解
select   case     when   e_base.e_base_fzjg   is   null   then   1   else   3   end   from   e_base
select   case   e_base.e_base_fzjg   when   null   then   1   else   3   end   from   e_base
第一条SQL语句应该是和第二条的结果一样,但是查询出来的第一个正确,第二个却是错误的,何解。我看语法是:CASE   expression  
WHEN   expression1   THEN   expression1  
[[WHEN   expression2   THEN   expression2]   [...]]  
[ELSE   expressionN]  
END  
应该第二个也没问题才是啊。

------解决方案--------------------
select case when e_base.e_base_fzjg = 'aa ' then 1 else 3 end from e_base
select case e_base.e_base_fzjg when 'aa ' then 1 else 3 end from e_base

這兩個是一樣的
------解决方案--------------------
snew(不懂求教) ( ) 信誉:100 2007-07-20 11:18:01 得分: 0


还有,就是如果CASE END中间既有判断NULL,还有类似‘java’,用那种好呢,还是两种都能够用

--------------------------------------------
select case when e_base.e_base_fzjg is null then 1 when e_base.e_base_fzjg = 'java ' then 2 else 3 end from e_base


snew(不懂求教) ( ) 信誉:100 2007-07-20 11:16:06 得分: 0


恩,谢谢了,另外问下,这个分怎么给你啊!


----------------------------------------------------
左右导航树-> 系统功能-> 可用分捐赠-> 帐号是huyouni,即可