Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Varoluşsal ve evrensel niceleyiciler, iki diziye uygulanan Boolean operatörler için farklı anlamlar belirtir. Bu aşağıdaki tabloda gösterilmiştir.
Varoluşsal niceletici
İki dizi verildiğinde, birinci dizideki herhangi bir öğe ikinci dizide eşleşirse, kullanılan karşılaştırma operatörüne göre döndürülen değer Doğrudur.
Evrensel nicelikçi
İki dizi verildiğinde, birinci dizideki her öğe ikinci dizide eşleşiyorsa, döndürülen değer Doğrudur.
XQuery, nicel ifadeleri aşağıdaki biçimde destekler:
( some | every ) <variable> in <Expression> (,...) satisfies <Expression>
Bu ifadeleri, bir veya birkaç dizi üzerinde bir ifadeye varoluşsal veya evrensel niceltme uygulamak için sorguda kullanabilirsiniz. SQL Server'da, cümledeki satisfies ifade şu durumlardan birine yol açmalıdır: bir düğüm dizisi, boş bir dizi veya bir Boolean değeri. Bu ifadenin sonucunun etkin Boolean değeri nicelendirmede kullanılır.
Bir miktar kullanan varoluşsal niceltme, niceleyiciyle sınırlanan değerlerden en az birinin True sonucu elde ettiği ifadede True döner.
Her şeyi kullanan evrensel niceltme, niceleyiciyle sınırlanan tüm değerler için True olmalıdır.
Örneğin, aşağıdaki sorgu, her <Konum> öğesini Konum Kimliği özniteliği olup olmadığını kontrol eder.
SELECT Instructions.query('
declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
if (every $WC in //AWMI:root/AWMI:Location
satisfies $WC/@LocationID)
then
<Result>All work centers have workcenterLocation ID</Result>
else
<Result>Not all work centers have workcenterLocation ID</Result>
') as Result
FROM Production.ProductModel
where ProductModelID=7
Konum Kimliği, <Konum> öğesinin gerekli bir özniteliği olduğundan, beklenen sonucu alırsınız:
<Result>All work centers have Location ID</Result>
query() yöntemini kullanmak yerine, aşağıdaki sorguda gösterildiği gibi sonucu ilişkisel dünyaya döndürmek için value() yöntemini kullanabilirsiniz. Tüm iş merkezi konumlarında LocationID özellikleri varsa, sorgu True döner. Aksi takdirde, sorgu Yanlış döner.
SELECT Instructions.value('
declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
every $WC in //AWMI:root/AWMI:Location
satisfies $WC/@LocationID',
'nvarchar(10)') as Result
FROM Production.ProductModel
where ProductModelID=7
Aşağıdaki sorgu, ürün fotoğraflarından birinin küçük olup olmadığını kontrol eder. Ürün kataloğu XML'de, her farklı boyuttaki ürün resmi için çeşitli açılar saklanır. Her ürün kataloğunun XML'inde en az bir küçük boyutlu resim bulunduğundan emin olmak isteyebilirsiniz. Aşağıdaki sorgu bunu başarıyor:
SELECT ProductModelID, CatalogDescription.value('
declare namespace PD="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription";
some $F in /PD:ProductDescription/PD:Picture
satisfies $F/PD:Size="small"', 'nvarchar(20)') as SmallPicturesStored
FROM Production.ProductModel
WHERE ProductModelID = 19
Bu kısmi bir sonuçdur:
ProductModelID SmallPicturesStored
-------------- --------------------
19 true
Uygulama Sınırlamaları
Sınırlamalar şunlardır:
- Tür belirti, nicelendirilmiş ifadelerde değişkenin bağlanmasının bir parçası olarak desteklenmez.