Oracle数据库。
一张用户表,表结构如下:
   userName  userID  
    张三        1
    李四        2
    王五        3
    刘六        4
    叶七        5
如果已知部分用户名,如“张三”“李四”,如何使用SQL语句将其与数据过滤显示,过滤后结果为:
userName  userID 
    王五        3
    刘六        4
    叶七        5
敬请达人赐教

解决方案 »

  1.   

    select t.userName,t.userID from 表明 t where t.userName not in('张三','李四');
      

  2.   

    谢谢楼上的达人如果需要被滤出的对象数量是动态,比如第一次滤出'张三','李四',第二次滤出'张三',sql语句应该如何呢?
      

  3.   

    程序里头连接字符串啊
    你第一次用的时候 in 括号里面连接字符串'张三','李四'
    第二次用的时候 in 括号里面连接字符串'张三'
    就行了啊
    用的时候有几个就连几个
      

  4.   

    我的意思是说,现在我有一个List userName, 它是一个动态的userName集合,需要一段程序可以将其集合里面的userName自动滤出
      

  5.   

    把要虑掉的字符串写到一个临时表tempFilter中,假如列名为username。
    然后,执行:SELECT USERNAME, USERID
      FROM TABLENAME A
     WHERE USERNAME NOT EXISTS
     (SELECT NULL FROM TEMPFILTER B WHERE A.USERNAME = B.USERNAME);
      

  6.   

    select t.userName,t.userID 
    from 表 t 
    where t.userName not in('三','四');