有如下两张表:
表A:P1           U        //字段p1           u1       //相关数据
p2           u2
p3           u3表B:P1    P2      Up1    p21       u6       //相关数据
p2    p22       u8
p3    p23       u7
p3    p24       u5合并成以下表的形式:
P1    P2        U
p1              u1       //相关数据
p2              u2
p3              u3
p1    p21       u6       //相关数据
p2    p22       u8
p3    p23       u7
p3    p24       u5
(注:使用 UNION、INTERSECT 或 EXCEPT 运算符合并的所有查询必须在其目标列表中有相同数目的表达式。)

解决方案 »

  1.   

    select *,U='' from A
    union all
    select * from B
      

  2.   

    --------------------------------------------------------------------------
    --  Author : htl258(Tony)
    --  Date   : 2010-04-30 00:49:43
    --  Version:Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) 
    --          Jul  9 2008 14:43:34 
    --          Copyright (c) 1988-2008 Microsoft Corporation
    --          Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)
    --  Blog   : http://blog.csdn.net/htl258
    --------------------------------------------------------------------------
    --> 生成测试数据表:AIF NOT OBJECT_ID('[A]') IS NULL
    DROP TABLE [A]
    GO
    CREATE TABLE [A]([P1] NVARCHAR(10),[U] NVARCHAR(10))
    INSERT [A]
    SELECT 'p1','u1' UNION ALL
    SELECT 'p2','u2' UNION ALL
    SELECT 'p3','u3'
    GO
    --SELECT * FROM [A]--> 生成测试数据表:BIF NOT OBJECT_ID('[B]') IS NULL
    DROP TABLE [B]
    GO
    CREATE TABLE [B]([P1] NVARCHAR(10),[P2] NVARCHAR(10),[U] NVARCHAR(10))
    INSERT [B]
    SELECT 'p1','p21','u6' UNION ALL
    SELECT 'p2','p22','u8' UNION ALL
    SELECT 'p3','p23','u7' UNION ALL
    SELECT 'p3','p24','u5'
    GO
    --SELECT * FROM [B]-->SQL查询如下:
    select P1,P2='',U from A
    union all
    select * from B/*
    P1         P2         U
    ---------- ---------- ----------
    p1                    u1
    p2                    u2
    p3                    u3
    p1         p21        u6
    p2         p22        u8
    p3         p23        u7
    p3         p24        u5(7 行受影响)*/
      

  3.   

    select 
    union 
    select 或者
      select 
       union all
       select 
      

  4.   

    [code=SQL
    select P1,U from A union all
    select P1,P2,Ucode]
      

  5.   

    不好意思,没写好select P1,U from A union all
    select P1,P2 from B
      

  6.   

    select p1 , '' p2 , u from a
    union all
    select p1 , p2 , u from b
      

  7.   

    谁说的
    select id,uname,uage from stu
    union
    select 1,'aaa',22 ---这里都没列名,你取列名分别为aaaaa,bbbbb,ccccc也行,出来的结果是以union上面那个结果集的列名为标准的这话是能执行的
    列数和数据类型一样(或者是能转成union上面的类型)就可以了,