Un nouvel opérateur est apparu avec SQL Server 2005, il permet de faire référence à une fonction table dans une sous-requête corrélée. L’opérateur relationnel APPLY permet d’appeler une fonction table spécifiée pour chaque ligne d’une expression de table extérieure.
Vous spécifiez APPLY dans la clause FROM d’une requête, de la même manière que vous utilisez l’opérateur relationnel JOIN.
APPLY à deux formes ; CROSS APPLY et OUTER APPLY.
CROSS APPLY appelle une fonction table pour chaque ligne d’une expression de table externe. Vous pouvez faire référence à des colonnes d’une table externe en tant qu’arguments de la fonction table. CROSS APPLY retourne un jeu de résultats unifié, compilé à partir de tous les résultats retournés par les appels de chaque fonction table. Si la fonction table retourne un jeu vide pour une ligne extérieure donnée, celle-ci n’est pas retournée dans le résultat.
OUTER APPLY est très similaire à CROSS APPLY, mais il retourne en plus des lignes de la table extérieure pour lesquelles la fonction table a retourné un jeu vide. Des NULL sont retournés comme valeurs de colonne qui correspondent aux colonnes de la fonction table.
Exemple : http://fotia.co.uk/fotia/DY.15.TheApplyOperator.aspx
Pas de commentaire reçu(s)
Laisser une réponse