sql >> Database >  >> RDS >> Sqlserver

Hoe een ampersand (&) te behouden tijdens het gebruik van FOR XML PATH op SQL 2005

Er zijn situaties waarin iemand geen goed gevormde XML wil - degene die ik (en misschien de originele poster) tegenkwam, gebruikte de For XML Path-techniek om een ​​enkele veldlijst met 'onderliggende' items te retourneren via een recursieve query. Meer informatie over deze techniek vindt u hier (specifiek in het gedeelte 'De blackbox XML-methoden'):Rijwaarden samenvoegen in Transact-SQL

Voor mijn situatie was het een echte teleurstelling om 'H&E' (een pathologische vlek) om te zetten in 'goed gevormde XML'. Gelukkig heb ik een oplossing gevonden... de volgende pagina heeft me geholpen dit probleem relatief eenvoudig op te lossen en zonder mijn recursieve query opnieuw te ontwerpen of extra parsing op presentatieniveau toe te voegen (zowel voor dit als voor andere / toekomstige situaties waarin mijn kind -rijen gegevensvelden bevatten gereserveerde XML-tekens):Omgaan met speciale tekens met FOR XML PATH

EDIT:onderstaande code uit de blogpost waarnaar wordt verwezen.

select
  stuff(
     (select ', <' + name + '>'
     from sys.databases
     where database_id > 4
     order by name
     for xml path(''), root('MyString'), type
     ).value('/MyString[1]','varchar(max)')
   , 1, 2, '') as namelist;


  1. Vreemde sleutel naar niet-primaire sleutel

  2. Vraag hoe u de ontbrekende datums in sql . kunt toevoegen

  3. Oracle SQL - Hoe kan ik de ODCI-pijplijnfunctie aanroepen met JSP

  4. MySQL Selecteer verschillende waarden uit 2 kolommen