select decode(upper(a.qq),'YES','是','NO','否','其它') qq,a.ww,b.aa,b.ss from a,b where a.rr=b.ff;

解决方案 »

  1.   

    行号= 3 列号= 279 错误文本= PL/SQL: ORA-00933: SQL 命令未正确结束
    行号= 3 列号= 1 错误文本= PL/SQL: SQL Statement ignored不行呀,报错...
      

  2.   

    你是如何写的?
    在哪里执行出错?
    在sql*plus里面执行
      

  3.   

    你是在哪里编译的?
    sql*plus里面?
      

  4.   

    as
    begin
    select a.prj,decode(upper(a.prjt),'I','艾','P','泊'),b.inf,decode(upper(a.code),'s','丝','m','美'), a.err from sm1 as a,sm2 as b ON a.mai = b.fee;
    end;
      

  5.   

    这是个sql语句
    不是存储过程
    直接拿到sql*plus里面执行select  a.prj,decode(upper(a.prjt),'I','艾','P','泊'),b.inf,decode(upper(a.code),'s','丝','m','美'),  a.err  
    from  sm1  as  a,sm2  as  b  
    where  a.mai  =  b.fee;  
    --是where 不是 ON
      

  6.   

    这是个sql语句
    不是存储过程
    直接拿到sql*plus里面执行select  a.prj,decode(upper(a.prjt),'I','艾','P','泊'),b.inf,decode(upper(a.code),'s','丝','m','美'),  a.err  
    from  sm1   a,sm2   b  
    where  a.mai  =  b.fee;  
    --是where 不是 ON,去掉as
      

  7.   

    主要是看是否有a.mai=b.fee 的数据
      

  8.   

    倒了,单独运行SQL语句可以,写成存储过程就报错
    ORA-01422: 实际返回的行数超出请求的行数
    ORA-06512: 在"SYSTEM.SM_SELECT", line 11
    ORA-06512: 在line 1
      

  9.   

    as
    s_prj varchar2(20);
    s_prjt varchar2(20);
    s_inf number(10);
    s_code varchar2(10);
    s_err varchar2(300);
    begin
    select  a.prj,decode(upper(a.prjt),'I','艾','P','泊'),b.inf,decode(upper(a.code),'s','丝','m','美'),  a.err into s_prj,s_prjt,s_inf,s_code,s_err  
    from  sm1   a,sm2   b  
    where  a.mai  =  b.fee;  
    end;
      

  10.   

    select    a.prj,decode(upper(a.prjt),'I','艾','P','泊'),b.inf,decode(upper(a.code),'s','丝','m','美'),    a.err  into  s_prj,s_prjt,s_inf,s_code,s_err      
    from    sm1      a,sm2      b      
    where    a.mai    =    b.fee and rownum=1; 
         
      

  11.   

    可以执行了,谢谢!!!但后面加上and rownum=1 起什么作用啊~!!