当前位置:编程学习 > C#/ASP.NET >>

请问各位,包含 UNION 运算符的 SQL 语句中的所有查询都必须在目标列表中具有相同数目的表达式

包含 UNION 运算符的 SQL 语句中的所有查询都必须在目标列表中具有相同数目的表达式
------------------------------------------------------------------------
这句话是什么意思 ,请帮忙举例说明一下,谢谢 --------------------编程问答-------------------- 多表合并一表,每个查询出的单独的表要有一致的字段数和数据类型 --------------------编程问答-------------------- 就是返回的列需要一致,如果不一致怎么合并呢 --------------------编程问答-------------------- "select vMembcd,vActStatus,dLastLoginDate,vStatus from TblWebMembers where vMembcd=@vMembcd UNION select OfficeChiDesc from Offices where OfficeChiDesc=@OfficeChiDesc UNION select LocationChiDesc from stores where locationChiDesc=@LocatinChiDesc";
三个不同的表,查询的字段数和类型,要一样?还是没明白 --------------------编程问答-------------------- string sql1, sql2, sql;
                sql1 = @"select a.*,b.AssetTypeName,c.DepartName, '采购确认' as flag from T_asset a ,T_AssetType b ,T_Department c 
                         where a.AssetTypeID=b.AssetTypeID and a.DepartMentID = c.DepartId and AssetState=3 and AssetConfirm=0  ";
                sql2 = @"select a.*,b.AssetTypeName,c.DepartName, '报废确认' as flag from T_asset a ,T_AssetType b ,T_Department c 
                         where a.AssetTypeID=b.AssetTypeID and a.DepartMentID = c.DepartId and AssetState=2 and AssetConfirm=1  ";
                sql = sql1 + "  union " + sql2;

原理同ls所说 --------------------编程问答-------------------- lz你对这个合并理解错误了,他是sql1查询到3条数据,sql2查询到5条数据,使用Union 以后就有8条数据;可是为了有一张表格显示出来,那自然需要列数相同阿 --------------------编程问答-------------------- unnion链接 每个 查询的字段 数量必须相同
但是 类型可以不同

--------------------编程问答-------------------- 查询的字段 数量必须相同 --------------------编程问答-------------------- hertcloud(·£孙子兵法£·) ( ) 信誉:100    Blog  2007-04-02 16:14:59  得分: 0  
 
 
   unnion链接 每个 查询的字段 数量必须相同
但是 类型可以不同


  
 
Top  
 hanguoji84(北飘) ( ) 信誉:98    Blog  2007-04-02 16:18:52  得分: 0  
 
 
   查询的字段 数量必须相同
  
 
Top  
------------------- --------------------编程问答-------------------- 学习了,union需要表的字段都相同 --------------------编程问答--------------------

select   vMembcd,vActStatus,dLastLoginDate,vStatus   --这一句查询的列数太多了,改为一个就行啦
from   TblWebMembers   
where   vMembcd=@vMembcd   
UNION   
select   OfficeChiDesc   
from   Offices   
where   OfficeChiDesc=@OfficeChiDesc   
UNION   
select   LocationChiDesc   
from   stores   
where   locationChiDesc=@LocatinChiDesc
--------------------编程问答-------------------- union all
要一致
select   vMembcd,vActStatus,dLastLoginDate,vStatus   from   TblWebMembers   where   vMembcd=@vMembcd   UNION  all
  select   OfficeChiDesc,'','',''   from   Offices   where   OfficeChiDesc=@OfficeChiDesc   UNION   select   LocationChiDesc ,'','',''  from   stores   where   locationChiDesc=@LocatinChiDesc 
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,