ДЛЯ XML EXPLICIT форматирование вывода - PullRequest
0 голосов
/ 30 марта 2011

У меня есть таблица со следующей структурой:

------------------------------------
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.

Ответы [ 2 ]

1 голос
/ 30 марта 2011

Разве вы не можете просто использовать этот запрос для достижения требуемого результата ??

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
0 голосов
/ 30 марта 2011

Кажется, вы хотите фрагмент 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 для забавных символов в ваших данных и подобных приятных вещей.Он также возвращает записи в отдельных строках.Я не знаю, является ли это проблемой или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...