这是一个SQL SERVER下的查询,请教各位在Oracle下应该如何来写?谢谢!SELECT    
   A.考试ID,  
   A.考试科目,
   CASE A.考试科目 
     WHEN '数学' THEN '理科'
     ELSE '文科' 
   END AS 科目类型,   
   A.考试日期,  
   ISNULL(CAST(DATEPART(YEAR,A.考试日期)  AS  VARCHAR)  +  '年'  
       +  CAST(DATEPART(month,A.考试日期)  AS  VARCHAR)    +  '月'  
       +  CAST(DATEPART(day,A.考试日期)  AS  VARCHAR)      +  '日','')  AS  考试日期,  
   B.监考老师姓名  
FROM  考试表  A  
   LEFT  JOIN  监考老师表  B  
       ON  A.考试ID  =  B.考试ID  
             AND  B.监考老师ID  =  (SELECT  MAX(监考老师ID)  FROM  监考老师表  WHERE  考试ID=A.考试ID)  
WHERE  A.考试状态  =  1

解决方案 »

  1.   

    SELECT    
       A.考试ID,  
       A.考试科目,
       CASE A.考试科目 
         WHEN '数学' THEN '理科'
         ELSE '文科' 
       END AS 科目类型,   
       A.考试日期,  
       to_char(A.考试日期, 'yyyy')  ||  '年'  
          || to_char(A.考试日期, 'mm')  || '月'  
          || to_char(A.考试日期, 'dd')  || '日'  AS  考试日期,  
       B.监考老师姓名  
    FROM  考试表  A  
       LEFT  JOIN  监考老师表  B  
           ON  A.考试ID  =  B.考试ID  
                 AND  B.监考老师ID  =  (SELECT  MAX(监考老师ID)  FROM  监考老师表  WHERE  考试ID=A.考试ID)  
    WHERE  A.考试状态  =  1