Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Nulla vagy több sztringet fogad el argumentumként, és az argumentumok értékeinek összefűzésével létrehozott sztringet ad vissza.
Szintaxis
fn:concat ($string as xs:string?
,$string as xs:string?
[, ...]) as xs:string
Érvek
$string
Nem kötelező sztring összefűzni.
Megjegyzések
A függvényhez legalább két argumentum szükséges. Ha egy argumentum üres sorozat, akkor a függvény nulla hosszúságú sztringként kezeli.
Kiegészítő karakterek (helyettesítő párok)
Az XQuery-függvényekben a helyettesítő párok viselkedése az adatbázis kompatibilitási szintjétől és bizonyos esetekben a függvények alapértelmezett névterének URI-jától függ. További információt az SQL Server 2016 adatbázismotor-funkcióinak kompatibilitástörő változásairóltémakör "XQuery Functions Are Surrogate-Aware" című szakaszában talál. Lásd még ALTER DATABASE kompatibilitási szintjét (Transact-SQL) és rendezési és Unicode-támogatási.
Példák
Ez a témakör XQuery-példákat tartalmaz az AdventureWorks mintaadatbázis különböző xml- típusú oszlopaiban tárolt XML-példányokra.
Egy. A concat() XQuery függvény használata sztringek összefűzéséhez
Egy adott termékmodell esetében ez a lekérdezés a jótállási időszak és a jótállás leírásának összefűzésével létrehozott sztringet adja vissza. A katalógus leírási dokumentumában a <Warranty> elem <WarrantyPeriod> és <Description> gyermekelemekből áll.
WITH XMLNAMESPACES (
'https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription' AS pd,
'https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain' AS wm)
SELECT CatalogDescription.query('
<Product
ProductModelID= "{ (/pd:ProductDescription/@ProductModelID)[1] }"
ProductModelName = "{ sql:column("PD.Name") }" >
{
concat( string((/pd:ProductDescription/pd:Features/wm:Warranty/wm:WarrantyPeriod)[1]), "-",
string((/pd:ProductDescription/pd:Features/wm:Warranty/wm:Description)[1]))
}
</Product>
') as Result
FROM Production.ProductModel PD
WHERE PD.ProductModelID=28
Jegyezze fel az előző lekérdezésben szereplő következőket:
A SELECT záradékban a CatalogDescription egy xml típusú oszlop. Ezért a query() metódus (XML-adattípus), Instructions.query() metódust használja. Az XQuery utasítás a lekérdezési metódus argumentumaként van megadva.
A lekérdezés végrehajtásához használt dokumentum névtereket használ. Ezért a névtér kulcsszó a névtér előtagjának meghatározására szolgál. További információ: XQuery Prolog.
Ez az eredmény:
<Product ProductModelID="28" ProductModelName="Road-450">1 year-parts and labor</Product>
Az előző lekérdezés egy adott termék adatait kéri le. Az alábbi lekérdezés ugyanazokat az adatokat kéri le az összes termékről, amelyekhez xml-katalógus-leírások vannak tárolva. A létezik() metódusa a WHERE záradékban szereplő xml adattípusnak igaz értéket ad vissza, ha a sorokban lévő XML-dokumentumnak van egy <ProductDescription> eleme.
WITH XMLNAMESPACES (
'https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription' AS pd,
'https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain' AS wm)
SELECT CatalogDescription.query('
<Product
ProductModelID= "{ (/pd:ProductDescription/@ProductModelID)[1] }"
ProductName = "{ sql:column("PD.Name") }" >
{
concat( string((/pd:ProductDescription/pd:Features/wm:Warranty/wm:WarrantyPeriod)[1]), "-",
string((/pd:ProductDescription/pd:Features/wm:Warranty/wm:Description)[1]))
}
</Product>
') as Result
FROM Production.ProductModel PD
WHERE CatalogDescription.exist('//pd:ProductDescription ') = 1
Vegye figyelembe, hogy a által visszaadott logikai értékxml típusú metódus 1-nel van összehasonlítva.
Megvalósítási korlátozások
Ezek a korlátozások:
- Az SQL Server concat() függvénye csak xs:sztring típusú értékeket fogad el. Más értékeket explicit módon xs:string vagy xdt:untypedAtomic értékre kell leadni.
Lásd még:
XQuery-függvények xml adattípusú