相关疑难解决方法(0)

使用SQL FOR XML创建HTML表

我正在使用SQL Server 2008 R2中的FOR XML语句创建HL7 Continuity of Care Document(CCD).

我用这种方法做了很多,但这是我第一次在HTML表格中表示部分数据,这给我带来了麻烦.

所以,我在表格中有以下信息:

  Problem  |   Onset    | Status
---------------------------------
  Ulcer    | 01/01/2008 | Active
  Edema    | 02/02/2005 | Active
Run Code Online (Sandbox Code Playgroud)

我试图渲染以下内容

<tr>
    <th>Problem</th>
    <th>Onset</th>
    <th>Status</th>
</tr>
<tr>
    <td>Ulcer</td>
    <td>01/01/2008</td>
    <td>Active</td>
</tr>
<tr>
    <td>Edema</td>
    <td>02/02/2005</td>
    <td>Active</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

我正在使用此查询:

SELECT    p.ProblemType AS "td"
    , p.Onset AS "td"
    , p.DiagnosisStatus AS "td"
FROM tblProblemList p
WHERE p.PatientUnitNumber = @PatientUnitNumber
FOR XML PATH('tr')
Run Code Online (Sandbox Code Playgroud)

我一直得到以下内容:

<tr>
  <td>Ulcer2008-01-01Active</td>
</tr>
<tr>
  <td>Edema2005-02-02Active</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

有人有任何建议吗?

html xml t-sql sql-server html-table

27
推荐指数
3
解决办法
6万
查看次数

没有XML编码的SQLXML?

我正在使用通用系统进行报告,该系统从数据库视图中获取数据(SQL Server 2005).在这个视图中,我必须在一行中合并一对多关系中的数据,并在此线程中使用priyanka.sarkar描述的解决方案:将子查询中的多个结果合并为一个逗号分隔值.该解决方案使用SQLXML来合并数据(子查询):

SELECT STUFF(
    (    SELECT ', ' + Name 
         FROM MyTable _in 
         WHERE _in.ID = _out.ID 
         FOR XML PATH('')),        -- Output multiple rows as one xml type value,
                                   -- without xml tags
    1, 2, '')      -- STUFF: Replace the comma at the beginning with empty string
FROM MyTable _out 
GROUP BY ID        -- Removes duplicates
Run Code Online (Sandbox Code Playgroud)

这完全有效(它甚至没有那么重的性能),除了我的数据现在&amp; 通过SQLXML 进行XML编码(&=>  等) - 毕竟我不想要XML数据,我只是用它作为一个技巧 - 因为通用系统我无法对此进行编码以清理它,因此编码数据直接进入报告.我不能在通用系统中使用存储过程,因此CURSOR-merge或COALESCE-ing不是一个选项......

所以我正在寻找的是T-SQL中的一种方式,它允许我再次解码XML,甚至更好:避免SQLXML对其进行编码.显然我可以编写一个存储函数来执行此操作,但我更喜欢内置,更安全的方式...

谢谢你的帮助...

sql t-sql sql-server sqlxml

17
推荐指数
2
解决办法
9298
查看次数

标签 统计

sql-server ×2

t-sql ×2

html ×1

html-table ×1

sql ×1

sqlxml ×1

xml ×1