日期:2014-05-17  浏览次数:20754 次

ms sql的条件判断语句转换为oracle的
我用ms sql写的语句,先转到oracle里用
但是不太明白oracle的具体语法
帮我看下,谢谢

mssql 语句如下:


SQL code

select * from person where userid='ad' and
case
    when ttlflag=1 and DATEADD(DAY,accountttl,createtime)>GETDATE() then 1  --判定时间
      when ttlflag=3 then 1 
    else  0
end =1

;


------解决方案--------------------
SQL code
-- TRY IT ..
SELECT *
  FROM PERSON
 WHERE USERID = 'ad'
   AND (CASE WHEN TTLFLAG = 1 AND CREATETIME + ACCOUNTTTL = SYSDATE
               THEN 1
             WHEN TTLFLAG = 3
               THEN 3
             ELSE 0
         END) = 1;

-- 根据我的想法,可简化之如下:
SELECT *
  FROM PERSON
 WHERE USERID = 'ad'
   AND (TTLFLAG = 1 
       AND CREATETIME + ACCOUNTTTL = SYSDATE);