1

我写了以下 SQL 查询:

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/>在输出中??为什么 ??

4

2 回答 2

5

试试这个——

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, '')
于 2013-08-01T12:05:28.473 回答
2

你对'FOR XML PATH'子句所做的就是做一种“hack”来连接 SQL 中的字符串。此子句可用于生成 XML 文档,因此任何< >值都将替换为 HTML 转义的等效值。

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

于 2013-08-01T12:04:43.673 回答