本帖最后由 swetter_hundsun 于 2009-10-10 13:56:44 编辑

解决方案 »

  1.   

    楼主,敢不敢贴点数据上来。你描述的 看起来好晕。
    也许你只需要一个 union all 一下就出来。感觉很简单的问题,描述的太复杂了吧
      

  2.   

    union all只能达到col1和col2合并为一个字段,字段名为col 这个效果因为我是想实现让管理员可以根据证件类型对表进行过滤查询
    上边的描述更直白的说,就是想让管理员可以查找客户类型为个人,证件类型0,2的客户客户类型为组织,证监类型为2,3的客户代码肯定不能贴上来,union实现的话比较简单,也不贴了吧
      

  3.   

    猜一个,是要这样的效果吗:select * from A where c_a1='0' and a2 in ('0','2')
    union all
    select * from A where c_a1='1' and a2 in ('2','3');
      

  4.   

    而我碰到的问题就是,如果只根据证件类型进行查找,设置两个过滤条件输入用的控件
    控件A供管理员选择个人客户的证件类型;控件B供选择组织客户的证件类型
    然而选择的结果写入SQL语句时,后写入的结果总是覆盖前一个结果
    因为他们都是对应着a2,也就是客户证件类型这个字段
      

  5.   


    这样子我写过,只是这个效果没有达到得到两个字段名col1,col2
    col1代表c_a1='0'且a2='0'或者'2'这一个查询结果,
    col2代表c_a1='1'且a2='2'或者'3'这一个查询结果同时,在结果表里,col1和col2合并为一个字段,字段名为col 
    因为我就是需要这两个新的字段名,这是控件使用的要求
      

  6.   

    select concat(A.c_a1,A.a2) col from A where c_a1='0'and a2 in ('0','2')union all select concat(A.c_a1,A.a2) col from A where c_a1='1' and a2 in ('2','3'); 
      

  7.   


    使用union,从外部只能看到col1而看不到col2的。我需要取得col1和col2这两个字段
      

  8.   

    看不明白
    楼主要得到col1和col2,又要得到合并后的col,那么这是两个查询吗?
    要查询的结果是
    a1 , a2 , c_a1  ,c_a2  ,col1 , col2 , col
    还是
    a1 , a2 , c_a1  ,c_a2  ,col1 , col2 
    还是
    a1 , a2 , c_a1  ,c_a2  ,col