有如下两张表:
表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 运算符合并的所有查询必须在其目标列表中有相同数目的表达式。)
表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 运算符合并的所有查询必须在其目标列表中有相同数目的表达式。)
union all
select * from B
-- 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 行受影响)*/
union
select 或者
select
union all
select
select P1,U from A union all
select P1,P2,Ucode]
select P1,P2 from B
union all
select p1 , p2 , u from b
select id,uname,uage from stu
union
select 1,'aaa',22 ---这里都没列名,你取列名分别为aaaaa,bbbbb,ccccc也行,出来的结果是以union上面那个结果集的列名为标准的这话是能执行的
列数和数据类型一样(或者是能转成union上面的类型)就可以了,