不好意思,因为有少少问题,所以重发一次提问,第一次在论坛发贴是这样的了
SQL server语句是:
SELECT CheckFlag=case when NowUnit<>MAdmPeo.PeoUnit And NowUnit is not Null And datediff(minute,endtime,getdate())>0 then '超假外出' when NowUnit<>MAdmPeo.PeoUnit And NowUnit is not Null then '外出' end, ViewPassCurrList.NowUnit,ViewPassCurrList.OutWhy
FROM MAdmPeo LEFT OUTER
JOIN
ViewPassCurrList ON ViewPassCurrList.PeoNo = MAdmPeo.PeoNo
其中MAdmPeo为表,ViewpassCurrList为视图
我想转换为oracle
请问这个句子里的case when、datediff()函数、getdate()函数、"<>"号和is not null这些怎样修改啊?请各位oracle高手能指点下小弟,关系到小弟的泡妞问题啊!因为没工作就没钱,没钱就没妞泡啊,各位,一定要帮忙啊,谢谢!
SQL server语句是:
SELECT CheckFlag=case when NowUnit<>MAdmPeo.PeoUnit And NowUnit is not Null And datediff(minute,endtime,getdate())>0 then '超假外出' when NowUnit<>MAdmPeo.PeoUnit And NowUnit is not Null then '外出' end, ViewPassCurrList.NowUnit,ViewPassCurrList.OutWhy
FROM MAdmPeo LEFT OUTER
JOIN
ViewPassCurrList ON ViewPassCurrList.PeoNo = MAdmPeo.PeoNo
其中MAdmPeo为表,ViewpassCurrList为视图
我想转换为oracle
请问这个句子里的case when、datediff()函数、getdate()函数、"<>"号和is not null这些怎样修改啊?请各位oracle高手能指点下小弟,关系到小弟的泡妞问题啊!因为没工作就没钱,没钱就没妞泡啊,各位,一定要帮忙啊,谢谢!
(case
when NowUnit<>MAdmPeo.PeoUnit And NowUnit is not Null And
sysdate -endtime>0 then '超假外出' --这个语意好象有问题,
when NowUnit<>MAdmPeo.PeoUnit And NowUnit is not Null then '外出' end )CheckFlag, ViewPassCurrList.NowUnit,ViewPassCurrList.OutWhy
FROM MAdmPeo LEFT OUTER
JOIN
ViewPassCurrList ON ViewPassCurrList.PeoNo = MAdmPeo.PeoNo
我测试了一下。
用trunc((sysdate -endtime)*24*60)>0
select decode(sign(NowUnit-MAdmPeo.PeoUnit),0,decode(NowUnit,null,0,decode(sign(sysdate-endtime),1,'超假外出','外出')),ViewPassCurrList.NowUnit,ViewPassCurrList.OutWhy
FROM MAdmPeo,ViewPassCurrList
where ViewPassCurrList.PeoNo(+) = MAdmPeo.PeoNo