Fonctions sur les séquences - videsFunctions on Sequences - empty

CETTE RUBRIQUE S’APPLIQUE À : ouiSQL Server (à partir de la version 2012)nonAzure SQL DatabasenonAzure SQL Data WarehousenonParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2012)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Retourne la valeur True si la valeur de $arg est une séquence vide.Returns True if the value of $arg is an empty sequence. Sinon, cette fonction renvoie la valeur False.Otherwise, the function returns False.

SyntaxeSyntax


fn:empty($arg as item()*) as xs:boolean  

ArgumentsArguments

$arg$arg
Séquence d'éléments.A sequence of items. Si la séquence est vide, la fonction renvoie la valeur True.If the sequence is empty, the function returns True. Sinon, cette fonction renvoie la valeur False.Otherwise, the function returns False.

NotesRemarks

Le fn :EXISTS() fonction n’est pas prise en charge.The fn:exists() function is not supported. En guise d’alternative, le not() fonction peut être utilisée.As an alternative, the not() function can be used.

ExemplesExamples

Cette rubrique fournit des exemples de XQuery relatifs à des instances XML stockés dans différentes xml colonnes de type dans la base de données AdventureWorks.This topic provides XQuery examples against XML instances that are stored in various xml type columns in the AdventureWorks database.

A.A. Utilisation de la fonction XQuery empty() pour déterminer la présence d'un attributUsing the empty() XQuery function to determine if an attribute is present

Dans le processus de fabrication pour un modèle de produit 7, cette requête retourne tous les postes de travail qui n’ont pas un MachineHours attribut.In the manufacturing process for Product Model 7, this query returns all the work center locations that do not have a MachineHours attribute.

SELECT ProductModelID, Instructions.query('  
declare namespace AWMI="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";  
     for $i in /AWMI:root/AWMI:Location[empty(@MachineHours)]  
     return  
       <Location  
            LocationID="{ ($i/@LocationID) }"  
            LaborHrs="{ ($i/@LaborHours) }" >  
            {   
              $i/@MachineHours  
            }    
       </Location>  
') as Result  
FROM Production.ProductModel  
where ProductModelID=7  

Voici le résultat obtenu :This is the result:

ProductModelID      Result          
-------------- ------------------------------------------  
7              <Location LocationID="30" LaborHrs="1"/>  
               <Location LocationID="50" LaborHrs="3"/>  
               <Location LocationID="60" LaborHrs="4"/>  

La requête suivante, légèrement modifiée, renvoie « NotFound » si le Machinehours attribut n’est pas présent :The following, slightly modified, query returns "NotFound" if the MachineHour attribute is not present:

SELECT ProductModelID, Instructions.query('  
declare namespace p14="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";  
     for $i in /p14:root/p14:Location  
     return  
       <Location  
            LocationID="{ ($i/@LocationID) }"  
            LaborHrs="{ ($i/@LaborHours) }" >  
            {   
                 if (empty($i/@MachineHours)) then  
                    attribute MachineHours { "NotFound" }  
                 else  
                    attribute MachineHours { data($i/@MachineHours) }  
            }    
       </Location>  
') as Result  
FROM Production.ProductModel  
where ProductModelID=7  

Voici le résultat obtenu :This is the result:

ProductModelID Result                         
-------------- -----------------------------------  
7                
  <Location LocationID="10" LaborHrs="2.5" MachineHours="3"/>  
  <Location LocationID="20" LaborHrs="1.75" MachineHours="2"/>  
  <Location LocationID="30" LaborHrs="1" MachineHours="NotFound"/>  
  <Location LocationID="45" LaborHrs="0.5" MachineHours="0.65"/>  
  <Location LocationID="50" LaborHrs="3" MachineHours="NotFound"/>  
  <Location LocationID="60" LaborHrs="4" MachineHours="NotFound"/>  

Voir aussiSee Also

Fonctions XQuery impliquant le Type de données xml XQuery Functions against the xml Data Type
existe ( ) Méthode ( Type de données xml )exist() Method (xml Data Type)