不是正常查询吗?一个集合存储在一列,合并、分开由后台做,用逗号分隔。
创新互联建站-专业网站定制、快速模板网站建设、高性价比绍兴网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式绍兴网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖绍兴地区。费用合理售后完善,十载实体公司更值得信赖。
差是except 交是intersection
UNION的语法格式为:
SELECT COLUMN_NAME
FROM TABLE_NAME
WHERE CONDITION
UNION [ALL]
SELECT COLUMN_NAME
FROM TABLE_NAME
WHERE CONDITION
[, ...n ]
其中COLUMN_NAME为查询字段的名称。字段的定义(UNION 运算的一部分)不必完全相同,但它们必须能够通过隐式转换相互兼容。UNION 指定组合多个结果集并返回为单个结果集。ALL表示将所有行合并到结果集合中。不指定该项时,被联合查询结果集合中的重复行将只保留一行。
EXCEPT和INTERSECT运算符的使用语法如下所示。
SELECT COLUMN_NAME
FROM TABLE_NAME
WHERE CONDITION
{ EXCEPT | INTERSECT }
SELECT COLUMN_NAME
FROM TABLE_NAME
WHERE CONDITION
[,...n ]
运算符的查询选择列表中的所有对应项必须是相容的。有关更多信息,参见 SQL Reference 中的数据类型相容性表。
ORDER BY 子句(如果使用该子句的话)必须放在最后一个带有集合运算符的查询后面。对于每个运算符来说,如果列的名称与查询的选择列表中对应项的名称相同,则该列名只能在 ORDER BY 子句中使用。
在具有相同数据类型和相同长度的列之间进行的运算会产生一个具有该类型和长度的列。针对 UNION、EXCEPT 以及 INTERSECT 集合运算符的结果,参见 SQL Reference 中结果数据类型的规则。
我看没人回答我再上。
-----------------------------
这个用子查询就可以了!如果嵌套很多,证明你的数据库设计很蹩脚。
给你个例子:
----------
SELECT TOP 10
convert(varchar(10),K.ID) as ID,
convert(varchar(20),convert(decimal(18,2),K.SumRealSaleCost)) as SumRealSaleCost,
K.CountRes
from
(
select
ROW_NUMBER() OVER (ORDER BY GetDate()) AS ID,
(sum(M.Sale) over()-sum(M.ReturnSaleCost) over()) as SumRealSaleCost,
count(*) over() as CountRes
from
(
---这里你爱用什么聚合函数就用什么聚合函数,我只用了一个简单的子查询而已!
select
A.Sale,
A.ReturnSaleCost
from ProductStore A
) M
) K
where K.ID ?
--这个排序最好和分页函数一致。
ORDER BY K.Sale DESC
--------------------
最外层为类型转化层
中间是数据逻辑层
最内层就是集合构建层
我这种写法很多人不理解,本人原创。你百度不到!
---------------------
如果LZ数据库有功底的话,加入我的团队吧!数据库聚贤庄