这个没办法
要么放动态语句里拼接
要么改成where ','||'1,2,3,4,5'||',' like '%,'||MEMBER_ID||',%' 
后者的性能可能会受影响

解决方案 »

  1.   

    有没有把 ‘1,2,3 ,4,5’  转number的方法啊?
      

  2.   

    where MEMBER_ID  IN (select to_number(substr(ids,
                            instr(',' || ids, ',', 1, level),
                            instr(ids || ',', ',', 1, level) -
                            instr(',' || ids, ',', 1, level))) id
      from (select '1,2,3,4,5' ids from dual)
    connect by rownum <= length(ids) - length(replace(ids, ',')) + 1)可以这么来转换。把select '1,2,3,4,5'这里的字符串换成需要的,不同Id中间用逗号隔开,每个id都要是数字,否则会报错
      

  3.   

    不过为啥不超过3999字节呢?

    因为在SQL中,varchar2类型最长为4000字节。减去一个','的长度,剩3999
      

  4.   

    不过为啥不超过3999字节呢?

    因为在SQL中,varchar2类型最长为4000字节。减去一个','的长度,剩3999
    版主在问个性能方面的问题哈!
    用group by 多个字段好 还是在这查询外多jion一个表好SELECT TR.TRANSACTION_ID,TR.TRANSACTION_DATE,TR.TOTAL_ODDS,TR.GAME,TR.HDP_TYPE,TR.IP,
           TR.IS_CANCELED,TR.IS_ACCEPT,TR.IS_FINISHED
     。。
      GROUP BY 
    TR.TRANSACTION_ID,TR.TRANSACTION_DATE,TR.HDP_TYPE,TR.TOTAL_ODDS,TR.DISP_BET_AMT,TR.IP,TR.GAME, TR.BET_AMT, TR.IS_CANCELED,TR.IS_ACCEPT,TR.IS_FINISHED
      

  5.   

    没看出你说的这两种有什么相关之处
    聚合一般是业务需求,和join不是同类型的操作