sql >> Databáze >  >> RDS >> Sqlserver

Jak zachovat ampersand (&) při použití FOR XML PATH na SQL 2005

Existují situace, kdy člověk nemusí chtít dobře vytvořený XML – ten, na který jsem (a možná i původní plakát) narazil, používal techniku ​​For XML Path k vrácení jednoho pole seznamu „podřízených“ položek prostřednictvím rekurzivního dotazu. Více informací o této technice je zde (konkrétně v sekci 'Metody XML blackboxu'):Zřetězení hodnot řádků v Transact-SQL

Pro mou situaci bylo vidět 'H&E' (patologická skvrna) transformované do 'dobře vytvořeného XML' skutečným zklamáním. Naštěstí jsem našel řešení... následující stránka mi pomohla vyřešit tento problém poměrně snadno a bez nutnosti předělávat můj rekurzivní dotaz nebo přidávat další analýzu na úrovni prezentace (pro toto i pro další/budoucí situace, kdy moje dítě -řádková datová pole obsahují vyhrazené znaky XML):Zpracování speciálních znaků pomocí FOR XML PATH

UPRAVIT:níže uvedený kód z odkazovaného blogového příspěvku.

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. MySql:OBJEDNÁVKA PODLE rodiče a dítěte

  2. Nejlepší způsob, jak uložit pole v databázi MySQL?

  3. Export dat dotazů SQL do Excelu

  4. jakou databázi použít pro samostatnou aplikaci Winforms