我在sqlserver中得语句是这样的!
 declare @i int
 @i=1
 IF(@i='-1') 
    SELECT  
    *
    FROM TBTAX_INVOICE ta
    LEFT JOIN TBORG_BASEUNIT c1
    ON c1.flID = ta.FLORGID
    LEFT JOIN TBTAX_PROJECTS c2
    ON c2.flID = ta.flProjectID
    
    WHERE 
     ta.flprojectID IS NULL
    and ta.flState in ('')
    and ta.flMode in ('')
    and ta.flType in ('')
    
    else 
 SELECT  
    *
    FROM TBTAX_INVOICE ta
    LEFT JOIN TBORG_BASEUNIT c1
    ON c1.flID = ta.FLORGID
    LEFT JOIN TBTAX_PROJECTS c2
    ON c2.flID = ta.flProjectID
    
    WHERE 
     ta.flprojectID=''
    and ta.flState in ('')
    and ta.flMode in ('')
    and ta.flType in ('')那么怎么把它转化为oracle中得语句呢?  求改高人指点!

解决方案 »

  1.   

    DECLARE
       i            INT;
       TYPE ref_cursor_type IS REF CURSOR;
       ref_cursor   ref_cursor_type;
    BEGIN
       i := 1;
       IF i = -1
       THEN
          OPEN ref_cursor FOR
             SELECT *
               FROM tbtax_invoice ta LEFT JOIN tborg_baseunit c1
                    ON c1.flid = ta.florgid
                    LEFT JOIN tbtax_projects c2 ON c2.flid = ta.flprojectid
              WHERE ta.flprojectid IS NULL
                AND ta.flstate IN ('')
                AND ta.flmode IN ('')
                AND ta.fltype IN ('');
       ELSE
          OPEN ref_cursor FOR
             SELECT *
               FROM tbtax_invoice ta LEFT JOIN tborg_baseunit c1
                    ON c1.flid = ta.florgid
                    LEFT JOIN tbtax_projects c2 ON c2.flid = ta.flprojectid
              WHERE ta.flprojectid = ''
                AND ta.flstate IN ('')
                AND ta.flmode IN ('')
                AND ta.fltype IN ('');
       END IF;
    END;
      

  2.   

    declare 
    i int := 1;
    begin
      IF(i = -1) then
        /*
        SELECT *
          FROM TBTAX_INVOICE ta
          LEFT JOIN TBORG_BASEUNIT c1 ON c1.flID = ta.FLORGID
          LEFT JOIN TBTAX_PROJECTS c2 ON c2.flID = ta.flProjectID
         WHERE ta.flprojectID IS NULL
           and ta.flState in ('')
           and ta.flMode in ('')
           and ta.flType in ('')
        */
        dbms_output.put_line('满足条件');
      else
        /*
        SELECT *
          FROM TBTAX_INVOICE ta
          LEFT JOIN TBORG_BASEUNIT c1 ON c1.flID = ta.FLORGID
          LEFT JOIN TBTAX_PROJECTS c2 ON c2.flID = ta.flProjectID
         WHERE ta.flprojectID = ''
           and ta.flState in ('')
           and ta.flMode in ('')
           and ta.flType in ('')
        */
        dbms_output.put_line('不满足条件');
      end if;
    end;