zoukankan      html  css  js  c++  java
  • SQL Server 2005 TSQL学习笔记:APPLY

    概念:使用 APPLY 运算符可以为实现查询操作的外部表表达式返回的每个行调用表值函数。表值函数作为右输入,外部表表达式作为左输入。通过对右输入求值来获得左输入每一行的计算结果,生成的行被组合起来作为最终输出。APPLY 运算符生成的列的列表是左输入中的列集,后跟右输入返回的列的列表。

    APPLY 有两种形式: CROSS APPLY 和 OUTER APPLY。CROSS APPLY 仅返回外部表中通过表值函数生成结果集的行。OUTER APPLY 既返回生成结果集的行,也返回不生成结果集的行,其中表值函数生成的列中的值为 NULL的列集,后跟右输入返回的列的列表。


     

     示例:

    USE AdventureWorks
     
    GO
    --
    Returning a TABLE
    CREATE
     FUNCTION fn_getcustomerorders(@CustomerID int@TopRecords bigint)
    RETURNS TABLE
     AS
     RETURN
      SELECT
     TOP (@TopRecords*
      
    FROM Sales.SalesOrderHeader
      
    WHERE CustomerID = @CustomerID
      ORDER
     BY OrderDate DESC


    --
     Executing query with APPLY
    SELECT
     * FROM Sales.Customer cust
    CROSS APPLY fn_getcustomerorders(cust.CustomerID, 647)

    没有OrderHeader的客户,表函数将返回NULL

  • 相关阅读:
    C++ assert()断言
    libcurl API:CURLOPT_REFERER的用法
    hdu 2821 Pusher (dfs)
    快速找到跟踪其他session产生的trc文件
    10635
    pat 1055 区间前k个
    闲话Cache:始篇
    闲话缓存:算法概述
    instance 怎么获得自己的 Metadata
    通过 dhcp-agent 访问 Metadata
  • 原文地址:https://www.cnblogs.com/rockniu/p/1230793.html
Copyright © 2011-2022 走看看