表  T  字段 U_ID
值有1,2,3现在 给定的 值 1,2,3,4,5我想select出的结果为  4,5单存的sql语句。并不是在程序中处理。

解决方案 »

  1.   

    select replace('1,2,3,4,5','1,2,3','');
      

  2.   


    WITH TT AS(
    SELECT 1 U_ID FROM DUAL 
    UNION ALL
    SELECT 2 FROM DUAL
    UNION ALL
    SELECT 3 FROM DUAL
    UNION ALL
    SELECT 4 FROM DUAL
    UNION ALL
    SELECT 5 FROM DUAL
    ) ,
    T AS(
    SELECT 1 U_ID FROM DUAL 
    UNION ALL
    SELECT 2 FROM DUAL
    UNION ALL
    SELECT 3 FROM DUAL
    )
    SELECT U_ID FROM TT A WHERE U_ID IN(1,2,3,4,5) AND NOT EXISTS(SELECT 1 FROM T WHERE U_ID=A.U_ID)
    --或者:SELECT U_ID FROM TT MINUS SELECT U_ID FROM t
      

  3.   

     你的字段的一个值是1,2,3,4,5  还是5个值分别为1,2,3,4,5SQL> select replace('1,2,3,4,5','1,2,3,','') from dual
      2  /REP
    ---
    4,5多个的话就用minus 或者not in
      

  4.   

    WITH TT AS(
    SELECT '1,2,3,4,5' U_ID FROM DUAL 
    )
    SELECT substr(U_ID,7,3) FROM TT 难道我理解有误!!!!
      

  5.   

    可能是我没表述清楚
    表T
    字段  u_id    u_name    等等
            1       XXX
           2       YYY
           3       ZZZ
           ......
    但是u_id 里没有 4,5给定的值  1,2,3,4,5如果我想查出  uid 在 12345中的 ,
    可以 select * from T where T.u_id in (1,2,3,4,5);    rs = 1,2,3但是现在我想得到的是 rs = 4,5    注意 4,5 在表T中的 u_id值 并没有。在此谢过楼上诸位。
      

  6.   


    是的  我以前就是这样处理的,建个表把值放进去。我现在就是想寻求sql语句。
      

  7.   


    我后面给的不是SQL是什么啊??
      

  8.   


    我的 in 或 exists 里面的 可能有 几百个值,
    表里面也是。
    我不可能 with table as 那样写。我目前的处理方式是建个表,把值copy进去
    然后联查。
      

  9.   

    select replace('1,2,3,4,5','1,2,3','') from dual
      

  10.   

    select rownum U_ID from dual connect by rownum<=4
    minus 
    select U_ID from tablet
      

  11.   

    很不理解你的需求,表中没有4,5,你非要查出来4,5,怎么可能 查出来呢?只能先做出这样的数据来,要sql先插进去呗~
      

  12.   

     
    SQL> select * from tablet;
     
          U_ID
    ----------
             1
             2
             3
     
    SQL> 
    SQL> with a as (select 1 u_id from dual union all
      2             select 2 u_id from dual union all
      3             select 3 u_id from dual union all
      4             select 4 u_id from dual union all
      5             select 5 u_id from dual )
      6  select u_id from a
      7   minus
      8  select U_ID from tablet;
     
          U_ID
    ----------
             4
             5
     
    SQL> 
      

  13.   


    表中存在可能有10000多条人的信息。
    现在来个文件 大概有500个人(其中有标识字段)、其中大多数在表里有、极少数在表里没有。
    我想把没有的通过语句select出来
    明白没?
    我目前的做法是把  这500多个人  导到临时表里  然后联查。
    我想寻求不需要导临时表的方法