现在有一张表,结构如下:字段1  字段2   字段3
甲       A       1
乙       A       2
丙       A       3
甲       B       5
乙       B       6
丙       B       5
甲       C       2
乙       C       3
丙       C       4
甲       D       5
乙       D       6
丙       D       2我现在想查找 字段2 =A 字段3 >=2
但结果是字段1 = 甲 的由于有 字段2=A 字段3 =1 不符合上面的条件,所以让字段1 =甲的所有结果都不显示
只显示以下结果:字段1  字段2   字段3
乙       A       2
丙       A       3
乙       B       6
丙       B       5
乙       C       3
丙       C       4
乙       D       6
丙       D       2请问这条sql语句应该怎么写?

解决方案 »

  1.   

    select * from tableName where 字段1!='甲'
      

  2.   

    没明白什么意思,最终要显示的结果是什么,是条件"字段1!=甲",还是"字段2 =A 字段3 >=2 "
      

  3.   

    楼上的大哥,不可以这么写,因为条件是根据页面来的
    页面中的条件只能选择 根据字段2=A 对应的字段3>=2查出来的结果,但同时让所有的字段2=ABCD的结果都显示
    只有条件不满足字段3 >=2 的不显示。估计有点乱,大该就是这个意思
      

  4.   


    select * from table_name
    where 字段2 =A 
        and 字段3 >=2
        and 字段1 not in (select 字段1 from table_name where 字段3=1)
      

  5.   

    先row_number() over(partition by 字段2 order by rownum) rn
    然后select出rn>1的记录.
      

  6.   


    SELECT * FROM YOURTABLE WHERE 字段2 ='A' AND 字段3 >=2 
      

  7.   

    估计楼主应该要的是下面的语句吧:
    select * from t
    where ((t.2  = 'A' AND T.3 >=2)
       OR (T.2 IN ('C,'B','D')))
      

  8.   

    不知所云,没看明白。字段2 =A 但同时让所有的字段2=ABCD的结果都显示 到底条件是什么
      

  9.   

    楼上写的有点贴边了。不过条件只有一个:字段2=A 和 字段3 >= 2  (注:>= 符号并不限定,也可以是<>;<;=;<=等等,在页面中是可选择的)
    第一步:根据条件 字段2 =A 和 字段3 >= 2 查到条件(这里的条件是明的,是从页面中得到的)
    第二步:根据 字段3 >= 2 查找,发现 字段3 = 1不符合,那么字段3 = 1 对应的 字段1 = 甲 ,结果是所有 字段1 = 甲的结果都不显示(这里应该是暗的条件,形容不好,只能这样说,希望大家都明白点)
    第三步:得出结果。
      

  10.   

    估计lz想要类似这样的语句吧
    select 字段1,字段2,字段3 
    from table 
    where 字段1 not in (select 字段1 from table where 字段2='A' and 字段3>2)
      

  11.   

    我上面的not in 应该改成in
    我不知道我理解的对不对
      

  12.   

    我上面的not in 应该改成in
    我不知道我理解的对不对
      

  13.   

    楼主给的条件太模糊,如果就给出的数据来看以下Sql语句应该是你要的:
    select * from yourtable where 字段1 not in
      (select a.字段1 from yourtable a,
         (select * from yourtable where 字段2 = 'A' and 字段3 >= 2) b
       where a.rowid = b.rowid(+) and b.rowid is null group by a.字段1);