SELECT [Orders].[CustomerID],[Orders].[OrderID]," +
"[Orders].[ShipAddress],[Orders].[Freight],[Orders].[ShipName] FROM [Orders]" +
" WHERE [Orders].[CustomerID] = '" + strCustometId + "'" +
"UNION ALL" +
"SELECT '" + strCustometId + "','','','','' FROM [Orders] WHERE [Orders].[CustomerID] = '" + strCustometId + "'" +
"HAVING COUNT(*)=0 " + strSort;1) UNION ALL 的作用是不是连接两个查询结果?什么时候用它 ?要注意哪些?
2) 两个表的列为
Orders表
OrderID,自动编号
CustomerID,文本
Freight,货币
ShipName,文本
ShipAddress,文本Customer表
CustomerID,文本
CompanyName,文本
ContactName,文本
ContactTitle,文本
Address,文本
SELECT '" + strCustometId + "','','','','' FROM [Orders] WHERE [Orders].[CustomerID] = '" + strCustometId + "'这里面的 ,,,,,是什么?代表什么意思?

解决方案 »

  1.   

    UNION ALL 注意列明
    这里面的 ,,,,,是什么?一个是一个空
      

  2.   

    union all 纵向的连接结果集连接的结果集的字段必须数量一致,类型一致
    SELECT '" + strCustometId + "','','','','' FROM [Orders] WHERE [Orders].[CustomerID] = '" + strCustometId + "' 
    这句话意思是第二个结果集中没有那么多字段,还要跟上一个集合连接上,只能用几个空白字段补充''就是在添加空白字段
      

  3.   

    UNION ALL 的作用是连接两个查询结果,两个查询的字段个数要相同,逗号中间有空字符串,实际SQL是:
    SELECT '###','','','','' FROM [Orders]1.在查询中会遇到 UNION ALL,它的用法和union一样,只不过union含有distinct的功能,它会把两张表了重复的记录去掉,而union all不会,所以从效率上,union all 会高一点.2.union all 是按原先顺序排列的,union 把两张表中的重复数据去掉后还进行了重新排序
      

  4.   

    1) UNION ALL 的作用是不是连接两个查询结果?什么时候用它 ?要注意哪些?     当多个表的列个数和类型都一致时候,可以使用UNION ALL将多个表的Select结果合并成一个结果集。2)"SELECT '" + strCustometId + "','','','','' FROM [Orders] WHERE [Orders].[CustomerID] = '" + strCustometId + "'    这里面的 ,,,,,是什么?代表什么意思? 
        
        这里的逗号之前,都包含一对单引号'',表示这些列为空列,但是为了要使用到UNION ALL,所以为了对齐列的个数,就是用''补齐。
      

  5.   


    一致的,都是默认varchar类型
      

  6.   

    1) UNION ALL 的作用是不是连接两个查询结果
    2) 连接的两个表必须结构一样
    3)至于你问的什么时候用可以在优化的时候用
    例如:select username from D_user where age>20 or age<15
    这类语句可以写成
    select username from D_user where age>20
    UNION ALL
    select username from D_user where age<15
    这样对于对于百万级的数据能够提高性能
    4)还有一点是UNION 和UNION ALL的的区别是:UNION 可以去除重复列。
    希望对楼主能有帮助。