zoukankan      html  css  js  c++  java
  • Tsql2008查询性能优化第一章---APPLY

       APPLY运算符涉及以下两个步骤中的一步或两步(取决于APPLY的类型):
              1.A1把右表表达式应用于左表的行。
              2.A2:添加外部行。
          Apply运算符把右表表达式应用左输入中的每一行。右表表达式可以引用左输入中的列,对于左表中的每一行,都要计算一次右边输入的表达式。这一步会把左边的每一行和来自右表达式的相应行进行匹配,并将生成的结果集合并起来,返回组合后的结果。
           Cross ApplyOUTER 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_title
    FROM    [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_title
    FROM    [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ɪ]
    vt.
    申请; 涂; 应用,运用; 敷(药);
    vi.
    申请,请求,适用; 适用,适合; 专心致志;
    [例句]I am continuing to apply for jobs
    我正在继续找工作。

         Copyright © 2017 程英暾. All Rights Reserved.
  • 相关阅读:
    <Java>第六次作业
    <Java>第五次作业
    <<JAVA技术>>第四次作业
    第三次Java作业--计科1501--李俊
    第二次Java作业--计科1501李俊
    《Java技术》第一次作业
    如何在IDEA中创建Web项目并部署到Tomcat中运行
    MySQL安装与配置(从未出错)
    java开发中的23种设计模式
    java.util包下的类及常用方法
  • 原文地址:https://www.cnblogs.com/c546170667/p/7594626.html
Copyright © 2011-2022 走看看