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

Existuje nějaký způsob, jak dekódovat HTML na SQL Server?

Existuje mnohem jednodušší řešení...

SQL Server podporuje datový typ XML a podporuje dekódování entit kódovaných v XML/HTML. Pokud právě přetypujete řetězec do datového typu XML, můžete použít vestavěnou funkci dekódování.

To by vypadalo takto:

select cast('Q & A' as XML).value('.[1]','nvarchar(max)' );

Chcete-li jej změnit na funkci pro snadné použití:

create function dbo.xmlDecode (@string nvarchar(max))
returns varchar(max)
begin
    return cast(@string as XML).value('.[1]','nvarchar(max)' )
end;

Mějte na paměti, že v příkladu OP se zdá, že řetězec byl zakódován 3krát za sebou. & se změnil na & poté do & a poté do & . Výsledkem je, že pro získání „původního“ řetězce zpět musíte použít funkci dekódování třikrát.



  1. Ověřte se jako konkrétní uživatel v MySQL

  2. Import vícehodnotového pole do Solr z mySQL pomocí Solr Data Import Handler

  3. Cizí klíč MySQL při smazání

  4. Přeskočit znaky ve funkci Oracle TO_DATE