我在查詢中使用FOR XML將多個行連接在一起,但文本包含引號「<」,「>」等。我需要實際字符而不是編碼值,例如「 "「等。有什麼建議嗎?對於XML編碼的TSQL反向
0
A
回答
1
我有一個類似的需求來提取列名以用於PIVOT查詢。
我使用的解決方案如下:
SELECT @columns = STUFF((SELECT '],[' + Value
FROM Table
ORDER BY Value
FOR XML PATH('')), 1, 2, '') + ']'
這將產生一個字符串:
[Value 1],[Value 2],[Value 3]
我希望這點你在正確的方向。
3
基本上你要求的是無效的XML,幸運的是SQL Server不會生成它。您可以使用生成的XML並提取內容,並且此操作會將轉義字符還原爲其文本表示。該恢復通常發生在presnetaitonlayer中,但它可以在SQL Server中通過實例使用XML方法來提取生成的FOR XML輸出的內容。例如:
declare @text varchar(max) = 'this text has <and>';
declare @xml xml;
set @xml = (select @text as [node] for xml path('nodes'), type);
select @xml;
select x.value(N'.', N'varchar(max)') as [text]
from @xml.nodes('//nodes/node') t(x);
0
--something like this?
SELECT * INTO #Names FROM (
SELECT Name='<>&' UNION ALL
SELECT Name='ab<>'
) Names;
-- 1)
SELECT STUFF(
(SELECT ', ' + Name FROM #Names FOR XML PATH(''))
,1,2,'');
-- 2)
SELECT STUFF(
(SELECT ', ' + Name FROM #Names FOR XML PATH(''),TYPE).value('text()[1]','nvarchar(max)')
,1,2,'');
-- 2) is slower but will not return encoded value.
希望它有幫助。
相關問題
- 1. 用於XML的TSQL導出實際的UTF-8編碼數據
- 2. TSQL反向LIKE語句
- 3. 反向地理編碼v3
- 4. 反向base64編碼和gzcompress
- 5. J2ME +反向地理編碼
- 6. 對於圈子反向..undefined
- 7. 解碼反編譯的源代碼對於Android
- 8. HTML中的反向地理編碼
- 9. OSX上的反向地理編碼/ MapKit?
- 10. 以色列的反向地理編碼
- 11. xcode中的反向地理編碼
- 12. XML反序列化編碼問題
- 13. tsql for xml,complex xml
- 14. TSQL對訂購集編號
- 15. TSQL相對星期編號
- 16. Android:反向地理編碼 - getFromLocation
- 17. 無法實現反向地理編碼
- 18. 反向地理編碼getPostalCode啓動
- 19. 反向地理編碼android定價
- 20. 反向地理編碼和本地化
- 21. 反向地理編碼使用MKReverseGeocoder
- 22. Google Maps API反向地理編碼 - result_type?
- 23. 谷歌Api反向地理編碼器
- 24. Google反向地理編碼問題
- 25. 反向地理編碼與AngularJS
- 26. 谷歌api反向地理編碼
- 27. 如何反向地理編碼
- 28. 谷歌反向地理編碼 - 獲取郵政編碼
- 29. XML反對反序列化
- 30. TSQL XML解析
完美!謝謝! – Benny 2010-06-24 23:26:12