sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan bevarer du et og-tegn (&), mens du bruger FOR XML PATH på SQL 2005

Der er situationer, hvor en person måske ikke ønsker veludformet XML - den, jeg (og måske den originale plakat) stødte på, brugte For XML Path-teknikken til at returnere en enkelt feltliste over 'underordnede' elementer via en rekursiv forespørgsel. Mere information om denne teknik er her (specifikt i afsnittet 'The blackbox XML-metoder'):Sammenkædning af rækkeværdier i Transact-SQL

For min situation var det en rigtig skuffelse at se 'H&E' (en patologisk plet) transformeret til 'veludformet XML'. Heldigvis fandt jeg en løsning... den følgende side hjalp mig med at løse dette problem relativt nemt og uden at skulle rearkitekte min rekursive forespørgsel eller tilføje yderligere parsing på præsentationsniveau (til dette såvel som andre/fremtidige situationer, hvor mit barn -rows datafelter indeholder reserverede XML-tegn):Håndtering af specielle tegn med FOR XML PATH

EDIT:kode nedenfor fra det refererede blogindlæg.

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. Hvordan fungerer PHP/MySQL-databaseforespørgsler præcist?

  2. Simulering af langvarig Oracle DB-forespørgsel

  3. MySQL-tekstkolonne afkortes

  4. MySql Indsæt Vælg uuid()