標籤:for 運算子 title 組合 -o select bsp mil nbsp
APPLY運算子涉及以下兩個步驟中的一步或兩步(取決於APPLY的類型): 1.A1把右表運算式應用於左表的行。 2.A2:添加外部行。 Apply運算子把右表運算式應用左輸入中的每一行。右表運算式可以引用左輸入中的列,對於左表中的每一行,都要計算一次右邊輸入的運算式。這一步會把左邊的每一行和來自右運算式的相應行進行匹配,並將產生的結果集合并起來,返回組合後的結果。 Cross Apply和OUTER APPLY總是包含步驟A1,只有OUT APPLY才包含步驟A2。 如果內部(右)表運算式為外部(左)行返回的是空集,則CROSS APPLY不會返回該外部(左)行。而OUTER APPLY會返回這樣的行,對於內表運算式的屬性,則使用NULL作為其預留位置。 例:以下查詢返回類別為汽車的兩個表中的資料:SELECT p.[d_id] , p.[c_title] , p.[e_title] , p.[d_time] , a.d_titleFROM [DingTai].[dbo].[D_News_Product] AS p CROSS APPLY ( SELECT c.d_id , d_title , c.d_time FROM dbo.D_Category AS c WHERE c.d_id = p.class_one --ORDER BY c.d_id DESC ) AS a GO------------------------返回結果--------------------- *如果想返回不包含類為汽車的資料則用OUT APPLY: SELECT p.[d_id] , p.[c_title] , p.[e_title] , p.[d_time] , a.d_titleFROM [DingTai].[dbo].[D_News_Product] AS p OUTER APPLY ( SELECT c.d_id , d_title , c.d_time FROM dbo.D_Category AS c WHERE c.d_id = p.class_one --ORDER BY c.d_id DESC ) AS a GO-----------------------結果-----------------------------------------------------------------補充單詞知識------------------------------------------------------------
apply |
英 [??pla?] |
美 [??pla?] |
vi. |
申請,請求,適用; 適用,適合; 專心致志; |
[例句]I am continuing to apply for jobs我正在繼續找工作。 Copyright ? 2017 程英暾. All Rights Reserved.
Tsql2008查詢效能最佳化第一章---APPLY