CREATE PROCEDURE sp_taskEmp AS
SELECT D.ID            DID,
       D.Country       Country,
       D.State         State,
       D.City          City,
       D.Address       Address,
       D.Office        Office,
       D.Name          Department_Name,
       E.ID            EID,
       E.Email         Email,
       E.Name          Name,
       E.Sex           Sex,
       E.BirthDay      BirthDay,
       E.JobTitles     JobTitles,
       E.OfficePhone   OfficePhone,
       E.OfficeAddress OfficeAddress,
       E.OfficeZipCode OfficeZipCode,
       E.TabIndex      ETabIndex,
       Decode(D.Dlevel, 1, d.dTabIndex, 2, d.ddTabIndex +        d.dTabIndex, 3, d.dddTabIndex + d.ddTabIndex + d.dTabIndex)
From   RiseManager..EmployeeDefine E,RiseOffice..view_Department D
where  E.Department_ID <> -1 and E.Department_ID = D.ID
Order By depTabIndex,ETabIndex好象是这么写得记不清了

解决方案 »

  1.   

    其它的地方基本上一样,我看主要是CASE部分,在ORACLE是使用DECODE来完成的。
    DECODE(D.Dlevel,
             1,d.dTabIndex,
             2,d.ddTabIndex + d.dTabIndex,
             3,d.dddTabIndex + d.ddTabIndex + d.dTabIndex,
             NULL)
      

  2.   

    应为:
    CREATE PROCEDURE sp_taskEmp AS
    SELECT D.ID            DID,
           D.Country       Country,
           D.State         State,
           D.City          City,
           D.Address       Address,
           D.Office        Office,
           D.Name          Department_Name,
           E.ID            EID,
           E.Email         Email,
           E.Name          Name,
           E.Sex           Sex,
           E.BirthDay      BirthDay,
           E.JobTitles     JobTitles,
           E.OfficePhone   OfficePhone,
           E.OfficeAddress OfficeAddress,
           E.OfficeZipCode OfficeZipCode,
           E.TabIndex      ETabIndex,
           Decode(D.Dlevel,1,d.dTabIndex,
                           2,d.ddTabIndex +d.dTabIndex,
                           3, d.dddTabIndex+d.ddTabIndex + d.dTabIndex) depTabIndex 
    From   RiseManager.EmployeeDefine E,RiseOffice.view_Department D
    where  E.Department_ID <> -1 and E.Department_ID = D.ID
      

  3.   

    Oracle的Procedure里直接写SELECT语句是行不通的,
    要么是SELECT .... INTO ... FROM ...
    要么是使用游标。
      

  4.   

    插入到临时表中
      然后在应用中select 这个临时表