有两张表a、b,查询结果集要求如果a.CLXXBH=b.CLXXBH那么结果集中该行为b表中的数据,否则为a表中的数据,对SQL语句不是太熟,还望各位高手能指导下,谢谢了……在线等……

解决方案 »

  1.   

    select a.* from a left join b where a.CLXXBH=b.CLXXBH
    union all
    select b.* from b left join a where a.CLXXBH<>b.CLXXBH
      

  2.   


    select isnull(b.CLXXBH,a.CLXXBH) CLXXBH,isnull(b.c1,a.c1) c1,isnull(b.c2,a.c2) c2 ...
    from a left join b on a.CLXXBH = b.CLXXBH
      

  3.   

    不对吧,a.CLXXBH<>b.CLXXBH查出来是多少条?
      

  4.   

    select b.* from a inner join b where a.CLXXBH=b.CLXXBH
    union all
    select a.* from a where not exists(select 1 from b where a.CLXXBH=b.CLXXBH)
      

  5.   

    if exists(select 1 from a,b where a.CLXXBH=b.CLXXBH)
    select * from b
    else
    select * from a
      

  6.   

    select a.* from a 
    where exists (select 1 from b where a.CLXXBH=b.CLXXBH)
    union all
    select b.* from b 
    where not exists (select 1 from a where a.CLXXBH=b.CLXXBH)(select 1 from a where a.CLXXBH=b.CLXXBH)
      

  7.   

    select a.* from a 
    where exists (select 1 from b where a.CLXXBH=b.CLXXBH)
    union all
    select b.* from b 
    where not exists (select 1 from a where a.CLXXBH=b.CLXXBH
      

  8.   

    select a.* from a 
    where exists (select 1 from b where a.CLXXBH=b.CLXXBH)
    union all
    select b.* from b 
    where not exists (select 1 from a where a.CLXXBH=b.CLXXBH)
      

  9.   


    create table a
    (
    ID int,
    name varchar(50),
    CLXXBH varchar(50)
    )
    create table b 
    (
    ID int,
    name varchar(50),
    CLXXBH varchar(50)
    )
    delete from a where id=1
    insert into a(id,name,CLXXBH)values(1,'a',1)
    insert into a(id,name,CLXXBH)values(1,'a',2)
    insert into a(id,name,CLXXBH)values(1,'a',3)
    insert into a(id,name,CLXXBH)values(1,'a',4)
    insert into a(id,name,CLXXBH)values(1,'a',5)
    insert into a(id,name,CLXXBH)values(1,'a',6)
    insert into a(id,name,CLXXBH)values(1,'a',7)insert into b(id,name,CLXXBH)values(2,'b',11)
    insert into b(id,name,CLXXBH)values(2,'b',10)
    insert into b(id,name,CLXXBH)values(2,'b',9)
    insert into b(id,name,CLXXBH)values(2,'b',8)
    insert into b(id,name,CLXXBH)values(2,'b',5)
    insert into b(id,name,CLXXBH)values(2,'b',6)
    insert into b(id,name,CLXXBH)values(2,'b',7)select b.id,b.name,b.CLXXBH from a,b where a.CLXXBH=b.CLXXBH
    union 
    select a.id,a.name,a.CLXXBH from a where a.CLXXBH not in(select b.CLXXBH from b)