国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > SQL Server > 正文

sql server 2005中使用apply對(duì)每行調(diào)用表值函數(shù)

2024-08-31 00:49:05
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

使用 apply 運(yùn)算符可以為實(shí)現(xiàn)查詢操作的外部表表達(dá)式返回的每個(gè)行調(diào)用表值函數(shù)。表值函數(shù)作為右輸入,外部表表達(dá)式作為左輸入。通過(guò)對(duì)右輸入求值來(lái)獲得左輸入每一行的計(jì)算結(jié)果,生成的行被組合起來(lái)作為最終輸出。apply 運(yùn)算符生成的列的列表是左輸入中的列集,后跟右輸入返回的列的列表。

apply 有兩種形式: cross apply outer apply。cross apply 僅返回外部表中通過(guò)表值函數(shù)生成結(jié)果集的行。outer apply 既返回生成結(jié)果集的行,也返回不生成結(jié)果集的行,其中表值函數(shù)生成的列中的值為 null。

--創(chuàng)建test表
create table test(oid int,name char(20),lead char(10))

--往里面插入幾行數(shù)據(jù)
insert into test values(1,'測(cè)試公司','11')
insert into test values(1,'測(cè)試公司','12')
insert into test values(1,'測(cè)試公司','13')
insert into test values(1,'測(cè)試公司','14,15,16')


--拆分字符串函數(shù)
alter function select_dempart_manager
(
@oid int,
@lead char(10)
)
returns @temp table(oid int,lead char(10))
as
begin
   
while charindex(',',@lead)>1
     
begin
       
insert into @temp values(@oid,left(@lead,charindex(',',@lead)-1))
       
set @lead=stuff(@lead,1,charindex(',',@lead),'')
     
end
   
insert into @temp values(@oid,@lead)   
return
end

--使用apply函數(shù)調(diào)用
select a.oid,name,st.lead from test a
outer apply select_dempart_manager(a.oid,a.lead) as st

--結(jié)果
--
oid name                    lead
--
1    測(cè)試公司               11        
--
1    測(cè)試公司               12        
--
1    測(cè)試公司               13        
--
1    測(cè)試公司               14        
--
1    測(cè)試公司               15        
--
1    測(cè)試公司               16        

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 嘉黎县| 荥经县| 平度市| 个旧市| 鄂州市| 东至县| 田阳县| 南充市| 沧州市| 含山县| 英德市| 瓮安县| 沁源县| 望谟县| 密山市| 清远市| 镇沅| 米林县| 高雄县| 寻甸| 江陵县| 忻州市| 平邑县| 黄梅县| 东光县| 新昌县| 深圳市| 海淀区| 谢通门县| 永寿县| 彭州市| 读书| 桦川县| 汽车| 霍邱县| 新巴尔虎右旗| 扬中市| 天气| 曲松县| 洛南县| 尉氏县|