2013-08-01 60 views
1

我已经写:选择在<br/> FOR XML路径查询在下面的SQL查询的SQL Server

SELECT SUBSTRING(
(
    SELECT ', <br />'+ 
    [tblSectors].[title] 
    FROM tblSectors WHERE 1=1 AND sector_id IN 
    (SELECT sector_id FROM tRelBusinessSector WHERE business_id = 2517) 
FOR XML PATH('')),2,200000) AS CSV 

它显示下面的输出:&lt;br /&gt;Personal Injury, &lt;br /&gt;Financial products/services

它不会显示在输出<br/>?为什么?

+3

请不要输出SQL HTML:S – Bas

回答

4

尝试这一个 -

SELECT STUFF((
    SELECT ', <br />' + s.[title] 
    FROM dbo.tblSectors s 
    WHERE sector_id IN (
      SELECT sector_id 
      FROM dbo.tRelBusinessSector 
      WHERE business_id = 2517 
     ) 
    FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)'), 1, 2, '') 
2

您对'FOR XML PATH'子句所做的工作正在做一种'hack'来连接SQL中的字符串。这个子句可以用来生成一个XML文档,因此任何值将被替换为该值的HTML转义等价物。

要么使用SQLCLR创建您自己的连接函数,要么在客户端解析结果而不是写出来。