और भी आसान उपाय है...
एसक्यूएल सर्वर एक्सएमएल डेटाटाइप का समर्थन करता है, और यह एक्सएमएल/एचटीएमएल एन्कोडेड इकाइयों को डीकोड करने का समर्थन करता है। यदि आपने स्ट्रिंग को एक्सएमएल डेटाटाइप में डाला है, तो आप अंतर्निहित डीकोड फ़ंक्शन का उपयोग कर सकते हैं।
यह इस तरह दिखेगा:
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;
ध्यान रखें कि ओपी के उदाहरण में, स्ट्रिंग को लगातार 3 बार एन्कोड किया गया लगता है। &
&
. में बदल गया फिर &
. में और फिर &
. में . परिणामस्वरूप, "मूल" स्ट्रिंग को वापस पाने के लिए, आपको 3 बार डिकोड फ़ंक्शन का उपयोग करना होगा।