Click here to monitor SSC
SQLServerCentral is supported by Red Gate Software Ltd.
 
Log in  ::  Register  ::  Not logged in
 
 
 
        
Home       Members    Calendar    Who's On


Add to briefcase ««12

Looping through a data set and combining values Expand / Collapse
Author
Message
Posted Friday, October 5, 2012 2:46 PM
SSC Rookie

SSC RookieSSC RookieSSC RookieSSC RookieSSC RookieSSC RookieSSC RookieSSC Rookie

Group: General Forum Members
Last Login: Tuesday, March 25, 2014 3:52 PM
Points: 27, Visits: 153
Just discovered a new problem, and I cant get round it. The data is now getting XML encoded < to < and > to > etc

Any ideas?
Post #1369315
Posted Friday, October 5, 2012 3:12 PM
Ten Centuries

Ten CenturiesTen CenturiesTen CenturiesTen CenturiesTen CenturiesTen CenturiesTen CenturiesTen Centuries

Group: General Forum Members
Last Login: Tuesday, December 16, 2014 1:57 PM
Points: 1,059, Visits: 1,794
do a replace around it. Each character will be XML encoded and you can simply replace it back.
Post #1369324
Posted Friday, October 5, 2012 4:44 PM


SSCommitted

SSCommittedSSCommittedSSCommittedSSCommittedSSCommittedSSCommittedSSCommittedSSCommitted

Group: General Forum Members
Last Login: Yesterday @ 4:45 PM
Points: 1,816, Visits: 5,915
oscarooko (10/5/2012)
Just discovered a new problem, and I cant get round it. The data is now getting XML encoded < to < and > to > etc

Any ideas?


You need to apply a root node to the XML, force it into XML datatype and then select out the text from the root node....like this:


declare @Table1 table (EmailAddress varchar(20), Msg varchar(20))
insert @Table1
select 'email1','blue'
union select 'email2','black'
union select 'email1','&white'
union select 'email1','<orange'
union select 'email4','red'

select e.EmailAddress as Email
,stuff((select ',' + t.Msg
from @Table1 t where t.EmailAddress = e.EmailAddress
for xml path(''),root('a'),type).value('(a/text())[1]','varchar(4000)'),1,1,'') as MessageBody
from @Table1 e
group by e.EmailAddress


The change is this line:

for xml path(''),root('a'),type).value('(a/text())[1]','varchar(4000)'),1,1,'')   as MessageBody

Where I added

,root('a'),type

to the FOR XML PATH('')

and

.value('(a/text())[1]','varchar(4000)')

to pull the text out again...


MM


  • MMGrid Addin
  • MMNose Addin


  • Forum Etiquette: How to post Reporting Services problems
  • Forum Etiquette: How to post data/code on a forum to get the best help - by Jeff Moden
  • How to Post Performance Problems - by Gail Shaw

  • Post #1369344
    « Prev Topic | Next Topic »

    Add to briefcase ««12

    Permissions Expand / Collapse