很奇怪的问题,
这个代码在家里的SQL2000上执行可以,
但在公司的电脑上SQL2000执行就有问题,
主要是Case When后面的Else 无效,补丁SP4也打了,还是一样..
数据是一样的.
为什么在家里的电脑上,当ELSE时,是显示"未执行",而公司的电脑上就不显示,数据是有的,但
只显示<Null>.
怎么改啊?高人帮看下,什么问题..
select AppNo,ClientName,
(select case when AppNo<>'' then '已执行' else '未执行' end from OPA where appno=apply.appno) as '流程A',
(select case when AppNo<>'' then '已执行' else '未执行' end from OPB where appno=apply.appno) as '流程B'
from apply
------解决方案--------------------
试试:
select?AppNo,ClientName,
(select?case?when?isnull(AppNo,'')<>''?then?'已执行'?else?'未执行'?end?from?OPA?where?appno=apply.appno)?as?'流程A',
(select?case?when?isnull(AppNo,'')<>''?then?'已执行'?else?'未执行'?end?from?OPB?where?appno=apply.appno)?as?'流程B'
?from?apply
------解决方案--------------------
select AppNo,ClientName,
(select case when AppNo isnull then '已执行' else '未执行' end from OPA where appno=apply.appno) as '流程A',
(select case when AppNo isnull then '已执行' else '未执行' end from OPB where appno=apply.appno) as '流程B'
from apply
is null 和<>'' 是有很大的区别的,你用这两种情况多试下结果就会发现的
------解决方案--------------------
select a.AppNo,a.ClientName,case when ISNULL(b.appno,'')<>'' then '已执行' else '未执行' end as '流程A',
case when ISNULL(c.appno,'')<>'' then '已执行' else '未执行' end as '流程B',
from apply a left join opa b on a.appno=b.appno
left join opb c on a.appno=c.appno
------解决方案--------------------
修正楼上最后多了个,号
select a.AppNo,a.ClientName,case when ISNULL(b.appno,'')<>'' then '已执行' else '未执行' end as '流程A',
case when ISNULL(c.appno,'')<>'' then '已执行' else '未执行' end as '流程B'
from apply a left join opa b on a.appno=b.appno
left join opb c on a.appno=c.appno
------解决方案--------------------
改成这样试试看:
select AppNo,ClientName,
(select case when isnull(AppNo,'')<>'' then '已执行' else '未执行' end from OPA where appno=apply.appno) as '流程A',
(select case when isnull(AppNo,'')<>'' then '已执行' else '未执行' end from OPB where appno=apply.appno) as '流程B'
from apply
------解决方案--------------------
select AppNo,ClientName,
(select case when AppNo<>'' then '已执行' else '未执行' end from OPA where appno=apply.appno) as '流程A',
(select case when AppNo<>'' then '已执行' else '未执行' end from OPB where appno=apply.appno) as '流程B'
from apply
--你的NULL值没处理