为什么这句话在PL/sql里执行没有问题。 SELECT WHSCODE,sum(CASE when status='空' then 1 else 0 end) NULLTorrNums FROM WAREHOUSEPOSITION GROUP BY WHSCODE  
带到程序中,就报错,说缺少右括号。我原来以为是单引号截断sql语句。但是后来改成 CASE when 1=1 then 1 else 0 end
仍然报错。不知道什么原因。请帮忙。

解决方案 »

  1.   

    我之前好像在java中遇到过,你不给sum取别名NULLTorrNums试试
      

  2.   

    SELECT WHSCODE,sum(decode(status,'空',1,0)) as NULLTorrNums FROM WAREHOUSEPOSITION GROUP BY WHSCODE
      

  3.   

    原因不明呀,我在java上試過 ResultSet rs = stmt.executeQuery("select department_id, sum(case when salary > 8000 then 1 else 0 end) t from employees group by department_id");
    while(rs.next()) {
    System.out.println(rs.getInt("t"));
    }沒出錯呀
      

  4.   

    SELECT WHSCODE,sum(decode(status,''空'',1,0)) as NULLTorrNums FROM WAREHOUSEPOSITION GROUP BY WHSCODE
      

  5.   

    语句没错 试着 取消别名SELECT WHSCODE,sum(CASE when status='空' then 1 else 0 end) as NULLTorrNums FROM WAREHOUSEPOSITION GROUP BY WHSCODE  
    --or
    SELECT WHSCODE,sum(CASE when status='空' then 1 else 0 end) "NULLTorrNums" FROM WAREHOUSEPOSITION GROUP BY WHSCODE  
      

  6.   

    调试一下,看看跟踪到sql语句执行的地方到底执行的是什么样的sql。
      

  7.   

    原因不清楚  不过oracle中  基本所有查询问题 都是报缺失右括号错误