zoukankan      html  css  js  c++  java
  • Union ,Union ALL的用法

    在项目中遇见到查询参考此报价地区的地区信息,并且把此地区的信息与查询出来的参考报价地区信息组成一张临时表,这用到UNION 或则UNION all,

    SQL 代码如下:

    SQL 1
    1 CREATE TYPE TY_AreaANDGoods AS TABLE(
    2 AreaID INT,
    3 TypeID INT
    4 )
    5 DECLARE @dt TY_AreaANDGoods;
    6 INSERT INTO @dt VALUES(1,1);
    7 SELECT aa.AreaId,aa.GoodsTypeId FROM MD_Area aa,@dt tt WHERE aa.QuotationType =tt.AreaID AND aa.GoodsTypeId = tt.TypeID
    8 UNION
    9 SELECT AreaID,TypeID FROM @dt

    我创建表值变量类型,并声明此类型的变量,用此变量来传递数据,然后利用UNION来实现功能要求。

    用UNION需要注意:

    1、所有UNION的查询必须在SELECT 列表项中有相同的列数。

    2、UNION查询的结果级的列标题仅从第一个查询处获得。

    3、查询中对应咧的数据类型必须隐式一致。

    4、UNION查询的默认返回选项为Distinct。

    SQL 2
     1 CREATE TABLE tb_test
    2 (
    3 col INT IDENTITY(1,1),
    4 Name char(10)
    5 )
    6 CREATE TABLE tb_test2
    7 (
    8 COL INT IDENTITY(1,1),
    9 Name NVARCHAR(20)
    10 )
    11 CREATE TABLE tb_Test3(
    12 COL INT IDENTITY(1,1),
    13 Name nvarchar(10)
    14 )
    15 INSERT INTO tb_test VALUES('AAA');
    16 INSERT INTO tb_test VALUES('BBB');
    17 INSERT INTO tb_test2 VALUES('CCCCCCCCCCCCC');
    18 INSERT INTO tb_test2 VALUES('CCCCCCCCCCCCCCCCCCC');
    19 INSERT INTO tb_test2 VALUES('AAA');
    20 INSERT INTO tb_Test3 VALUES('DDD');
    21 INSERT INTO tb_Test3 VALUES('FFF');
    22 SELECT Name FROM tb_test
    23 UNION
    24 SELECT Name FROM tb_test2
    25 UNION
    26 SELECT Name FROM tb_Test3


    可以看到查询处的结果已经经过DISTINCT处理,如果想全部显示需要做如下改变:

    sql 3
    1 SELECT Name  AS TEST FROM tb_test
    2 UNION ALL
    3 SELECT Name FROM tb_test2
    4 UNION ALL
    5 SELECT Name FROM tb_Test3



  • 相关阅读:
    python中open函数的使用
    内存地址转换与分段【转】
    VirtualBox虚拟机网络设置【转】
    Google免费的公共DNS服务器
    SSH数据交互过程【转】
    适合Web服务器的iptables规则【转】
    使用安装光盘建立本地yum仓库【转】
    RHCE从入门到精通视频教程【转】
    解决Apache启动时错误提示
    50个C/C++源代码网站【转】
  • 原文地址:https://www.cnblogs.com/hfliyi/p/2378721.html
Copyright © 2011-2022 走看看