我有一个具有以下结构的表:
------------------------------------
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> |
<a href="view_divece.aspx?id=SY999000">SY999000 [GP999000]</a> |
目前我能够以下列格式获得结果(没有分隔符“|”):
<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 :(得分:1)
您不能只使用此查询来实现所需的结果吗?
SELECT
DISTINCT
'<a href="view_divece.aspx?id=' +
t.device_id + '">' + t.device_id + ' [' +
t.terminal_id + ']</a> | '
FROM DEALERS_SIMPAYMENTS t
WHERE t.invoice_id = 1
返回两个字符串:
<a href="view_divece.aspx?id=SY00001">SY00001 [GP00001]</a> | 
<a href="view_divece.aspx?id=SY999000">SY999000 [GP999000]</a> | 
答案 1 :(得分:0)
您似乎想要一个HTML片段而不是XML。在这种特殊情况下,我会选择字符串连接。类似的东西:
SELECT '<a href="view_divece.aspx?id=' + device_id + '">' +
device_id + ' [' + terminal_id + ']</a> | '
FROM DEALERS_SIMPAYMENTS
WHERE invoice_id=1
应该做的伎俩。这当然适用于您的简单示例,并且没有XML / HTML转义数据中的有趣字符和这些好东西。它还以单独的行返回条目。我不知道这是不是问题。