当前位置:  开发笔记 > 数据库 > 正文

将表值函数连接到MSSQL查询

如何解决《将表值函数连接到MSSQL查询》经验,为你挑选了1个好方法。

我有一个表值函数,它接受一个人的ID号并返回几行和一列.在另一个查询中,我正在创建一个SELECT,它可以检索有关很多人的大量信息.如何将我的主查询中的id号传递给我的函数来汇总列并将其加入我的主查询?我希望我没有表值函数,因为它可以很容易地工作,但是,这个函数在别处使用,我想重用它.也许这对于表值函数甚至不可能,我需要创建一个标量值.

我的主要查询如下所示:

select id_num, name, balance 
from listOfPeople

表值函数如下所示:

calculatePersonalDiscount(id_number)

我想做的事情如下:

select id_num, name, balance 
from listOfPeople
left join 
(
  SELECT id_num, SUM(discount)
  FROM calculatePersonalDiscount(listOfPeople.id_num)
) x ON x.id_num = listOfPeople.id_num

但是你不能将listOfPeople.id_num传递给函数,因为它的范围并不相同.



1> Matt Hamilto..:

在SQL Server 2005中,您可以使用CROSS APPLY语法:

select id_num, name, balance, SUM(x.discount)
from listOfPeople
    cross apply dbo.calculatePersonalDiscount(listOfPeople.id_num) x

同样地,还有一个OUTER APPLY语法,相当于LEFT OUTER连接.

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有