首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

select时,里面的函数依次调用一张表里的每一个值

2013-09-12 
select时,里边的函数依次调用一张表里的每一个值。本帖最后由 suanleba10 于 2013-09-11 17:07:43 编辑--ta

select时,里边的函数依次调用一张表里的每一个值。
本帖最后由 suanleba10 于 2013-09-11 17:07:43 编辑


--table1: #advertisers ( advertiserId bigint)
231
232
234
236
674
684
710
731
732
837
--table2: #accounts (accountId int)
1
2
3
--table: dbo.KeyWords
AccountId Date                        TrackingId
1         2013-07-10 18:09:01.373     xxx
2         2013-07-10 18:09:03.321     yyy
4         2013-07-10 18:09:03.321     zzz
5         2013-07-10 18:09:03.1231    ooo




想实现以下语句, 关键是dbo.ufGetTrackingId函数需要每次调用一个@AdvertiserId,
如果用游标的话,会重复执行断AccountId in( select AccountId from #accounts),
有什么办法,可以在直接select 表 dbo.KeyWords是依次给@AdvertiserId返回#advertisers里的一个AdvertiserId值给函数dbo.ufGetTrackingId

select date, .dbo.ufGetTrackingId(@advertiserId)
from dbo.KeyWords
where AccountId in( select AccountId from #accounts)


[解决办法]
declare @s varchar(100)  -->函数返回什么类型,这里就定义什么类型?
set @s=dbo.ufGetTrackingId(@advertiserId)  -->这个@advertiserId是外部传过来的

select date, @s as xxxx
from dbo.KeyWords a
inner join #accounts b on a.AccountId=b.AccountId

热点排行