Fonctions sur des valeurs booléennes - pas de fonctionFunctions on Boolean Values - not Function

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 booléenne effective de $arg a la valeur false et retourne FALSE si la valeur booléenne effective de $arg a la valeur true.Returns TRUE if the effective Boolean value of $arg is false, and returns FALSE if the effective Boolean value of $arg is true.

SyntaxeSyntax


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

ArgumentsArguments

$arg$arg
Séquence d'éléments pour lesquels existe une valeur booléenne effective.A sequence of items for which there is an effective Boolean value.

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. À l’aide de la fonction XQuery not() pour rechercher les modèles de produit dont les descriptions du catalogue n’incluent pas les <spécifications > élément.Using the not() XQuery function to find product models whose catalog descriptions do not include the <Specifications> element.

La requête suivante construit le document XML qui contient les ID des modèles de produit dont la description de catalogue ne comprend pas l'élément <Specifications>.The following query constructs XML that contains product model IDs for product models whose catalog descriptions do not include the <Specifications> element.

WITH XMLNAMESPACES ('http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription' AS pd)  
SELECT ProductModelID, CatalogDescription.query('  
       <Product   
           ProductModelID="{ sql:column("ProductModelID") }"  
        />  
') as Result  
FROM Production.ProductModel  
WHERE CatalogDescription.exist('  
     /pd:ProductDescription[not(pd:Specifications/*)]  '  
     ) = 0  

Notez les points suivants dans la requête précédente :Note the following from the previous query:

  • Étant donné que le document utilise des espaces de noms, l'exemple recourt à l'instruction WITH NAMESPACES.Because the document uses namespaces, the sample uses the WITH NAMESPACES statement. Une autre option consiste à utiliser le déclarer l’espace de noms mot clé dans le prologue XQuery pour définir le préfixe.Another option is to use the declare namespace keyword in the XQuery Prolog to define the prefix.

  • La requête construit ensuite le document XML qui comprend le <Product> élément et ses ProductModelID attribut.The query then constructs the XML that includes the <Product> element and its ProductModelID attribute.

  • La clause WHERE utilise le méthode exist() (type de données XML) pour filtrer les lignes.The WHERE clause uses the exist() method (XML data type) to filter the rows. Le exist() méthode retourne la valeur True s’il n’y <ProductDescription > les éléments qui n’ont pas <spécification > des éléments enfants.The exist() method returns True if there are <ProductDescription> elements that do not have <Specification> child elements. Notez l’utilisation de la not() (fonction).Note the use of the not() function.

    Ce jeu de résultats est vide, car chaque description de catalogue de modèles de produit comprend le <spécifications > élément.This result set is empty, because each product model catalog description includes the <Specifications> element.

B.B. Utilisation de la fonction XQuery not() pour extraire les sites de production dépourvus de l'attribut MachineHoursUsing the not() XQuery function to retrieve work center locations that do not have a MachineHours attribute

La requête suivante porte sur la colonne Instructions.The following query is specified against the Instructions column. Cette colonne stocke les instructions de fabrication des modèles de produit.This column stores manufacturing instructions for the product models.

Pour un modèle de produit particulier, la requête extrait les sites de production qui ne spécifient pas l'attribut MachineHours.For a particular product model, the query retrieves work center locations that do not specify MachineHours. Autrement dit, l’attribut MachineHours n’est pas spécifié pour le <emplacement > élément.That is, the attribute MachineHours is not specified for the <Location> element.

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

Dans la requête précédente, notez les points suivants :In the preceding query, note the following:

  • Le declarenamespace dans prologue XQuery définit le préfixe d’espace de noms des instructions de fabrication d’Adventure Works.The declarenamespace in XQuery Prolog defines the Adventure Works manufacturing instructions namespace prefix. Il représente le même espace de noms que celui utilisé dans le document des instructions de fabrication.It represents the same namespace used in the manufacturing instructions document.

  • Dans la requête, le pas (@MachineHours) prédicat retourne la valeur True s’il existe aucune MachineHours attribut.In the query, the not(@MachineHours) predicate returns True if there is no MachineHours attribute.

    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"/>  

Limites de mise en œuvreImplementation Limitations

Les limitations suivantes s'appliquent :These are the limitations:

  • Le not() fonction prend uniquement en charge les arguments de type xs : Boolean ou node() * ou la séquence vide.The not() function only supports arguments of type xs:boolean, or node()*, or the empty sequence.

Voir aussiSee Also

Fonctions XQuery impliquant le type de données xmlXQuery Functions against the xml Data Type