正文
sqlserver取并集,sql查询并集
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
怎么在同一个函数里写两个select语句,而且把查询到的结果组合起来???
您好,
OACLE库中:适当使用
Union,对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
Union All,对两个结果集进行并集操作,包括重复行,不进行排序;
SQLServer库中:适当使用
(select * from tableA) union (select * from tableB) 并 (合并结果集)
建议:以上关键字请LZ在使用中具体参考百度文库介绍。
以上希望能对LZ有帮助。
SQLServer 怎样在存储过程中获取另一个存储过程的部分执行结果集
不知道你的具体情况, 只能猜了.
如果存储过程B有参数, 在存储过程A里调用B, 用参数过滤一下B的结果集, 然后放到一个临时表(或者类似结构的东东)里, 最后在A里直接SELECT这个临时表的数据即可.
如果B没有参数, 就在SELECT里过滤一下.
sql查询问题
创建一个表值函数,然后和表右连接,如果insertTime为空则取右边表的时间,我粗糙的写了一个表值函数
create function GetMonth(@startDate datetime,@endDate datetime)
returns @months table(mon datetime)
as
begin
declare @num int
select @num=datediff(MONTH,@startDate,@endDate)
while @num=0
begin
insert into @months values(DATEADD(MONTH,@num,@startDate))
set @num=@num-1
end
return
end
然后
select a.MaterialYield,isnull(a.InsertTime,b.mon) as InsertTime from (SELECT MaterialYield,InsertTime FROM dbo.PDS_ProductPlan WHERE InsertTime BETWEEN '2014-01-01' AND '2014-12-01' AND MaterialID = 1) a right jion dbo.getMonths( '2014-01-01','2014-12-01') b on a.InsertTime=b.mon