2013-03-14 44 views
-1
create table student (
     name varchar2(20), 
     s1 number(3), 
     s2 number(3), 
     s3 number(3) 
); 

insert into student values('ashok',50, 90, 70); 

select name,s1,s2,s3, s1+s2+s3 "Total" 
from student; 

select name,s1,s2,s3,if((s1+s2+s3)>(105)){'pass'} "Total" 
from student 
group by name; 

任何人都可以幫助如何打印新列的學生是否通過或看不到每個主題。ORA-00907:在添加新列時缺少右括號

+3

oracle沒有IF功能。在PL-SQL中有一個IF語句,但在Oracle SQL中沒有IF函數。用例。 – NickJ 2013-03-14 17:06:37

回答

1

試試這個:

select distinct 
    name, 
    s1, 
    s2, 
    s3, 
    case when (s1+s2+s3) > 105 then 'pass' 
     else 'fail' 
     end as "Total" 
from student; 
+0

非常感謝 – Ashok 2013-03-14 18:18:49

1

你不能若是喜歡使用。你正在尋找的句法單詞是CASE。

SELECT 
    name, s1,s2,s3, 
    CASE 
    WHEN (s1+s2+s3)>105 THEN 'Pass' 
    ELSE 'Fail' 
    END as 'Total' 
FROM 
    student