Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Returnerar värdet för $arg som representeras som en sträng.
Syntax
fn:string() as xs:string
fn:string($arg as item()?) as xs:string
Arguments
$arg
En nod eller ett atomiskt värde.
Anmärkningar
Om $arg är den tomma sekvensen returneras strängen med noll längd.
Om $arg är en nod returnerar funktionen strängvärdet för noden som hämtas med hjälp av strängvärdesåtkomstorn. Detta definieras i specifikationen W3C XQuery 1.0 och XPath 2.0 Data Model.
Om $arg är ett atomiskt värde returnerar funktionen samma sträng som returneras av uttrycket cast som
xs:string, $arg, förutom när annat anges.Om typen av $arg är
xs:anyURIkonverteras URI:n till en sträng utan att specialtecken tas ifrån.I den här implementeringen
fn:string()kan utan argument endast användas i kontexten för ett kontextberoende predikat. Mer specifikt kan den bara användas inom hakparenteser ([ ]).
Examples
Den här artikeln innehåller XQuery-exempel mot XML-instanser som lagras i olika xml-typkolumner i AdventureWorks-databasen.
A. Använda strängfunktionen
Följande fråga hämtar elementets <Features> underordnade elementnod.<ProductDescription>
SELECT CatalogDescription.query('
declare namespace PD="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription";
/PD:ProductDescription/PD:Features
')
FROM Production.ProductModel
WHERE ProductModelID = 19;
Här är det partiella resultatet:
<PD:Features xmlns:PD="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription">
These are the product highlights.
<p1:Warranty xmlns:p1="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain">
<p1:WarrantyPeriod>3 years</p1:WarrantyPeriod>
<p1:Description>parts and labor</p1:Description>
</p1:Warranty>
...
</PD:Features>
Om du anger string() funktionen får du strängvärdet för den angivna noden.
SELECT CatalogDescription.query('
declare namespace PD="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription";
string(/PD:ProductDescription[1]/PD:Features[1])
')
FROM Production.ProductModel
WHERE ProductModelID = 19;
Här är det partiella resultatet.
These are the product highlights.
3 yearsparts and labor...
B. Använda strängfunktionen på olika noder
I följande exempel tilldelas en XML-instans till en xml-typvariabel. Frågor anges för att illustrera resultatet av att tillämpa på string() olika noder.
DECLARE @x AS XML;
SET @x = '<?xml version="1.0" encoding="UTF-8" ?>
<!-- This is a comment -->
<root>
<a>10</a>
just text
<b attr="x">20</b>
</root>
';
Följande fråga hämtar strängvärdet för dokumentnoden. Det här värdet skapas genom att sammanlänka strängvärdet för alla dess underordnade textnoder.
SELECT @x.query('string(/)');
Här är resultatet:
This is a comment 10
just text
20
Följande fråga försöker hämta strängvärdet för en bearbetningsinstruktionsnod. Resultatet är en tom sekvens eftersom den inte innehåller någon textnod.
SELECT @x.query('string(/processing-instruction()[1])');
Följande fråga hämtar strängvärdet för kommentarsnoden och returnerar textnoden.
SELECT @x.query('string(/comment()[1])');
Här är resultatet:
This is a comment