+ -
当前位置:首页 → 问答吧 → 奇怪的问题

奇怪的问题

时间:2011-09-26

来源:互联网

这是一条SELECT语句里的打算要SELECT出来的某个字段

 SELECT A.ADDRESS1 
  FROM PS_HM_TB_ADD_VW A 
 WHERE A.EMPLID = J.EMPLID 
  AND A.EFFDT = ( 
 SELECT MAX(ED.EFFDT) 
  FROM PS_HM_TB_ADD_VW ED 
 WHERE ED.EMPLID = A.EMPLID 
  AND ED.EFFDT <= SYSDATE)) AS ADDRESS1
上面这一段是原来的代码,运行没问题。

现在要要修改成如果他的国家是中国则地址这一字段赋空。
第一次运行没问题,但是如果修改数据库里的数据后(比如把ADDRESS1从上海路修改成北京路),整个这一条数据在最后的结果里就没了,请问是哪里的问题? 

 SELECT CASE WHEN A.COUNTRY='CHN' THEN '' ELSE A.ADDRESS1 END FROM PS_HM_TB_ADD_VW A 
 WHERE A.EMPLID = J.EMPLID 
  AND A.EFFDT = ( 
 SELECT MAX(ED.EFFDT) 
  FROM PS_HM_TB_ADD_VW ED 
 WHERE ED.EMPLID = A.EMPLID 
  AND ED.EFFDT <= SYSDATE)) AS ADDRESS1

作者: matt1014   发布时间: 2011-09-26

A.COUNTRY='CHN' THEN '' ,你看一下你的国家编码是不是 CHN,这个 case when 语句会把所有中国区的地址改为空

作者: opps_zhou   发布时间: 2011-09-26

数据贴出来看看!

作者: cosio   发布时间: 2011-09-26