我想通过页面上传过来的2个值X1,X2去查询到数据库中包含这些值的数据,我要查询到的数据由:
code      name
-----------------
X1        NULL
NULL      X1
X2        NULL
NULL      X2
X1        X2
X2        X1但不能查询到一下值:
code     name
-----------------
X1       X3
X3       NULL
X3       X1
X2       X3
X3       X2谢谢

解决方案 »

  1.   

    一个表的话 +条件 code is not null,2个表的话左连接。
    X3 没有一点规律可循啊
      

  2.   

    “X3 NULL”这条数据本来就是查不出来的呀,不符合X1, X2的条件。with a as 
    (select 'X1' code,  null name from dual
    union
    select null,  'X1' from dual
    union
    select 'X2', null from dual
    union
    select null, 'X2' from dual
    union
    select 'X1', 'X2' from dual
    union
    select 'X2' ,'X1' from dual
    )
    select * from a WHERE CODE in ('X1', 'X2') or name in ('X1', 'X2')
      

  3.   

    不要出现的基本都是包含有X3的,那能否就直接用不包含x3的呢,而不是把所以的X1、X2的条件都用Union来连
      

  4.   

    我是想通过where 条件或者,只通过一个select语句查询出来,而且我要显示的数据并非肯定有6条,而是6种情况的都要显示出来
      

  5.   

    借用下美女的SQL,加上null条件
    with a as  
    (select 'X1' code, null name from dual
    union
    select null, 'X1' from dual
    union
    select 'X2', null from dual
    union
    select null, 'X2' from dual
    union
    select 'X1', 'X2' from dual
    union
    select 'X2' ,'X1' from dual
    union
    select 'X3' ,'X1' from dual
    union
    select 'X2' ,'X3' from dual
    union
    select 'X3' ,'null' from dual
    )
    select * from a WHERE (CODE in ('X1', 'X2') OR code IS null) AND ( name in ('X1', 'X2') OR name IS null) 
      

  6.   

    6楼的
    借用下美女的SQL,加上null条件
    select * from a WHERE (CODE in ('X1', 'X2') OR code IS null) AND ( name in ('X1', 'X2') OR name IS null)  是可以的,谢谢了