もっと簡単な解決策があります...
SQL Server は XML データ型をサポートし、XML/HTML でエンコードされたエンティティのデコードをサポートしています。文字列を XML データ型にキャストするだけであれば、組み込みのデコード関数を使用できます。
これは次のようになります:
select cast('Q & A' as XML).value('.[1]','nvarchar(max)' );
使いやすい関数にするには:
create function dbo.xmlDecode (@string nvarchar(max))
returns varchar(max)
begin
return cast(@string as XML).value('.[1]','nvarchar(max)' )
end;
OP の例では、文字列が 3 回連続してエンコードされているように見えることに注意してください。 &
&
になりました 次に &
に そして &
に入ります .その結果、「元の」文字列を取得するには、デコード関数を 3 回使用する必要があります。