Harf işlev (XQuery)
Bu işlev her karaktere dönüştürür $argiçin onun büyük harf eşdeğer. Microsoft Windows ikili harf dönüşüm için Unicode kod noktaları nasıl karakterler büyük harfe dönüştürülür belirtir. Bu standart Unicode standart kod noktası standart eşlemesini farklıdır.
Sözdizimi
fn:upper-case($arg as xs:string?) as xs:string
Bağımsız değişkenler
Terim |
Tanım |
$arg |
Büyük harfe dönüştürülmelerine dize değeri. |
Açıklamalar
Eğer değeri $argise boş, sıfır uzunlukta bir dize döndürülür.
Örnekler
A.Bir dizeyi büyük harfe değiştirme
Aşağıdaki örnek 'abcDEF!@4' giriş dizesini değiştirir büyük harfe.
DECLARE @x xml = N'abcDEF!@4';
SELECT @x.value('fn:upper-case(/text()[1])', 'nvarchar(10)');
DECLARE @x xml = N'abcDEF!@4';
SELECT @x.value('fn:upper-case(/text()[1])', 'nvarchar(10)');
B.Arama için belirli bir karakter dizesi
Bu örnek, harf işlevi büyük küçük harf duyarlı bir arama gerçekleştirmek için nasıl kullanılacağını gösterir.
USE AdventureWorks
GO
--WITH XMLNAMESPACES clause specifies the namespace prefix
--to use.
WITH XMLNAMESPACES ('https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription' AS pd)
--The XQuery contains() function is used to determine whether
--any of the text nodes below the <Summary> element contain
--the word 'frame'. The upper-case() function is used to make
--the search case-insensitive.
SELECT ProductModelID, CatalogDescription.query('
<Prod>
{ /pd:ProductDescription/@ProductModelID }
{ /pd:ProductDescription/pd:Summary }
</Prod>
') as Result
FROM Production.ProductModel
where CatalogDescription.exist('
/pd:ProductDescription/pd:Summary//text()[
contains(upper-case(.), "FRAME")]') = 1
USE AdventureWorks
GO
--WITH XMLNAMESPACES clause specifies the namespace prefix
--to use.
WITH XMLNAMESPACES ('https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription' AS pd)
--The XQuery contains() function is used to determine whether
--any of the text nodes below the <Summary> element contain
--the word 'frame'. The upper-case() function is used to make
--the search case-insensitive.
SELECT ProductModelID, CatalogDescription.query('
<Prod>
{ /pd:ProductDescription/@ProductModelID }
{ /pd:ProductDescription/pd:Summary }
</Prod>
') as Result
FROM Production.ProductModel
where CatalogDescription.exist('
/pd:ProductDescription/pd:Summary//text()[
contains(upper-case(.), "FRAME")]') = 1
Sonuç kümesi buradadır.
ProductModelID Result
-------------- ---------
19 <Prod ProductModelID="19">
<pd:Summary xmlns:pd="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription">
<p1:p xmlns:p1="http://www.w3.org/1999/xhtml">Our top-of-the-line competition mountain bike.
Performance-enhancing options include the innovative HL Frame,
super-smooth front suspension, and traction for all terrain.
</p1:p>
</pd:Summary>
</Prod>
25 <Prod ProductModelID="25">
<pd:Summary xmlns:pd="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription">
<p1:p xmlns:p1="http://www.w3.org/1999/xhtml">This bike is ridden by race winners. Developed with the
Adventure Works Cycles professional race team, it has a extremely light
heat-treated aluminum frame, and steering that allows precision control.
</p1:p>
</pd:Summary>
</Prod>