select * from r_user where user_id in (0,1,2,3)问题:r_user表中只有0号记录,我要得到的结果是1,2,3。就是in中不存在的值我要拿到。用SQL写出来,不建表。建表太容易了。

解决方案 »

  1.   

    结果要什么样的?
    如果有规律的话可以用上
    select rownum from dual connect by rownum<4
      

  2.   

    其实就是我有一大堆的数字可能在TXT文件中,我直接把这些内容COPY出来,到in里面,一查,得到COPY进来的数字,哪些在没在数据库中存在。select * from r_user where user_id in (0,1,2,3) 比方TXT中有0,1,2,3 COPY到in里面,查一下,发现,1 2 3不存在数据库中。怎么写SQL能拿到这1 2 3.
      

  3.   

    没有规律的话就只能
    select 0 a from dual union all
    select 1 from dual union all
    select 2 from dual union all
    select 3 from dual
      

  4.   

    建一个表t  一个字段id  有数据1,2,3
    with a as (select 0 aa from dual 
               union select 2 aa from dual)
    select * from a
    minus
    select id from t
      

  5.   

    不太明白什么意,不就是要返回r_user中user_id不在后面所给的范围中的记录了吗?那为什么不写成:
    select * from r_user where user_id not in (0,1,2,3);
    不知道上面各位说的建表是什么意思?r_user本身不就是表吗?为什么还要建啊?