TVF 的应用和比较

来源:互联网 发布:linux批量创建文件夹 编辑:程序博客网 时间:2024/06/05 07:45

原来的sql:(inner join)

select p.title,p.postid,p.CategoryID,m.displayname,m.login_Email,m.memberid from member m inner join  post p
on p.memberid=m.memberid where m.memberid=0

使用TVF:(cross apply)

if exists(select * from sysobjects where type='IF' and name='ReTurnPostTVF')
begin
drop function ReTurnPostTVF
end
create function ReTurnPostTVF
(
@memberid int
)
returns Table
as return
select p.title,p.postid from post p where
p.memberid=@memberid
Go
select p.title,p.postid,m.displayname,m.login_Email,m.memberid from member m
cross apply  ReTurnPostTVF(m.memberid) p where m.memberid=0
 

OUTER APPLY   相当 left join

原创粉丝点击