SELECT * FROM TableName 
where ' 10, 11, 13, 12, 40, 47, 48, 49, 90, 92, 91, 94, 95, 96, 30, 31, 33, 34, 35, 24, 20, 21' like '% '+menuid+',%' order by menuid 
上面这段我在MS SQL中可以正常执行,但放到oracle中就提示无效数字错误,上面这句语句在Oracle中应该怎么写?menuid是表TableName中的一列,里面的记录内容就可能是10或11....

解决方案 »

  1.   

    在oracle中:SELECT * FROM TableName 
    where munuid in (10,11,13,12,40,47,48,49,90,92,91,94,95,96,30,31,33,34,35,24,20,21') order by menuid;
      

  2.   

    SELECT * FROM TableName 
    where menuid like '% '||变量||',%' order by menuid 
      

  3.   

    sql serverdrop table #a
    create table #a(menuid varchar(20),aaa varchar(20))insert into #a
    select '10','aa'
    union
    select '20','bb'
    union
    select '30','bb'
    union
    select '11','bb'
    union
    select '210','bb'
    SELECT * FROM #a 
    where ' 10, 11, 13, 12, 40, 47, 48, 49, 90, 92, 91, 94, 95, 96, 30, 31, 33, 34, 35, 24, 20, 21' 
    like '% '+menuid+',%' 
    order by menuid --
    10aa
    11bb
    20bb
    30bb
    --lz到底要做什么啊
      

  4.   

    icedut(冰) ( ) 信誉:100    Blog  2007-01-04 16:25:25  得分: 0  
     
     
       SELECT * FROM TableName 
    where menuid like '% '||变量||',%' order by menuid 
    ---------
    我这个不对啊
    终于看懂了lz的意思
      
     
      

  5.   

    CREATE TABLE ta(menuid VARCHAR2(20),aaa VARCHAR2(20))oracle中连接用||
    INSERT INTO ta
    SELECT '10','aa' FROM dual
    UNION
    SELECT '20','bb' FROM dual
    UNION
    SELECT '30','bb' FROM dual
    UNION
    SELECT '11','bb' FROM dual
    UNION
    SELECT '210','bb' FROM dualSELECT * FROM ta 
    WHERE ' 10, 11, 13, 12, 40, 47, 48, 49, 90, 92, 91, 94, 95, 96, 30, 31, 33, 34, 35, 24, 20, 21'
     LIKE '% '||TO_CHAR(menuid)||',%' ORDER BY menuid