2011-04-05 1 views
2

을 탈출 유지 :SQL 물건() 함수는 여기에 튜토리얼을 사용하여 내 HTML

http://www.sqlservercurry.com/2008/06/combine-multiple-rows-into-one-row.html

내가 다음 쿼리 작성 :

SELECT DISTINCT STUFF((SELECT '<li>' + CountryCode + '</li>' from Country FOR XML PATH('')),1,1,'') as Codes FROM Country 

이 잘 작동을하지만, 내 모든 HTML은 이제 인코딩 (예 : &lt;li&gt;)

이 방법이 있습니까? SUBSTRING() 접근법을 사용하면이 작업도 수행됩니다.

+4

'stuff'가 아니라 XML 엔씨이 션입니다! –

답변

4

변경 '<li>' + CountryCode + '</li>'부터 CountryCode as li으로 변경하면 원하는 것을 얻을 수 있습니다. XML의 PATH 그것은 XML 안전 그래서 <&lt;

DECLARE @CountryCode VARCHAR(MAX) 
SELECT @CountryCode = '' 
SELECT @CountryCode = @CountryCode + '<li>' + CountryCode + '</li>' from Country 

SELECT @CountryCode 

예를

DECLARE @CountryCode VARCHAR(MAX) 
SELECT @CountryCode = '' 
SELECT @CountryCode = @CountryCode + '<li>' + name + '</li>' 
FROM master..spt_values 
WHERE type = 'a' 

SELECT @CountryCode 

당신은 또한 물론 ''&lt;을 대체 할 REPLACE 기능을 사용할 수 있습니다 시도 될 수 있기 때문에

+0

이것은 정확히 내가 찾고있는 것입니다. 고맙습니다. –

2

그것은이다 ~ '<'

내 의견으로는 li을 프론트 엔드에서 끝내고 데이터베이스에 넣지 말아야합니다.

+0

+1 - XML ​​PATH 변환에 대해 자세히 설명해 주셔서 감사합니다. –