2011-03-30 92 views
-1

我有以下結構的表:FOR XML EXPLICIT格式輸出

------------------------------------ 
invoice_id | device_id | terminal_id 
------------------------------------ 
1   | SY000001 | GP000001 
1   | SY000001 | GP000001 
1   | SY999000 | GP999000 
2   | SY111001 | GP111001 

我想在下面的格式,從表中的數據:

<a href="view_divece.aspx?id=SY000001">SY000001 [GP000001]</a>&nbsp;|&nbsp; 
<a href="view_divece.aspx?id=SY999000">SY999000 [GP999000]</a>&nbsp;|&nbsp; 

目前我能(不帶分隔符「  |  」):

<a href="view_divece.aspx?id=SY000001">SY000001 [GP000001]</a> 
<a href="view_divece.aspx?id=SY999000">SY999000 [GP999000]</a> 

我的查詢是:

SELECT DISTINCT 
    1 as tag, 
    null as parent, 
    'view_device.aspx?id=' + device_id [a!1!href], 
    device_id + ' [' + terminal_id + ']' [a!1!] 
FROM DEALERS_SIMPAYMENTS 
WHERE 
    invoice_id = 1 
FOR XML EXPLICIT 

這是可能的,如果是,怎麼做?

SQL server 2008.

+0

重新標記:問題不是XML相關 – MarcoS 2011-03-30 15:21:42

+0

哪個版本** **的SQL Server? – 2011-03-30 15:40:36

+0

加油!與SQL查詢生成HTML? – 2011-08-22 13:31:06

回答

0

看來你想要一個HTML片段而不是XML。在這種特殊情況下,我會去字符串連接。類似於:

SELECT '<a href="view_divece.aspx?id=' + device_id + '">' + 
     device_id + ' [' + terminal_id + ']</a>&nbsp;|&nbsp;' 
FROM DEALERS_SIMPAYMENTS 
WHERE invoice_id=1 

應該這樣做。這隻適用於您的簡單示例,並且不會在您的數據中出現有趣角色的XML/HTML轉義,以及這樣的好事情。它還返回單獨行中的條目。我不知道這是否有問題。

+0

我想在行上得到結果。 – 2011-03-30 17:04:21

1

難道你不能只使用這個查詢來實現你所需的結果?

SELECT 
    DISTINCT 
    '<a href="view_divece.aspx?id=' + 
    t.device_id + '">' + t.device_id + ' [' + 
    t.terminal_id + ']</a>&nbsp;|&nbsp' 
FROM DEALERS_SIMPAYMENTS t 
WHERE t.invoice_id = 1 

返回兩個字符串:

<a href="view_divece.aspx?id=SY00001">SY00001 [GP00001]</a>&nbsp;|&nbsp 
<a href="view_divece.aspx?id=SY999000">SY999000 [GP999000]</a>&nbsp;|&nbsp