SQL Server 2005 для XML Explicit - нужна помощь форматирования

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

------------------------------
LocationID     | AccountNumber
------------------------------
long-guid-here | 12345
long-guid-here | 54321

Чтобы перейти к другой хранимой процедуре, мне нужно, чтобы XML выглядел так:

<root> 
    <clientID>12345</clientID>
    <clientID>54321</clientID>
</root>

Лучшее, что я смог сделать, это получить вот так:

<root clientID="10705"/>

Я использую этот оператор SQL:

SELECT
    1 as tag,
    null as parent,
    AccountNumber as 'root!1!clientID'
FROM
    Location.LocationMDAccount
WHERE
    locationid = 'long-guid-here'
FOR XML EXPLICIT

До сих пор я смотрел документацию на странице MSDN , но я не получил желаемых результатов.


@КГ,

Ваш дал мне этот вывод на самом деле:

<root>
  <Location.LocationMDAccount>
    <clientId>10705</clientId>
  </Location.LocationMDAccount>
</root>

Я собираюсь придерживаться FOR XML EXPLICITКриса Леона.

5.08.2008 20:35:56
5 ОТВЕТОВ
РЕШЕНИЕ

пытаться

SELECT
    1 AS Tag,
    0 AS Parent,
    AccountNumber AS [Root!1!AccountNumber!element]
FROM
    Location.LocationMDAccount
WHERE
    LocationID = 'long-guid-here'
FOR XML EXPLICIT
3
21.05.2017 15:48:10

Попробуй это, Крис:

SELECT
    AccountNumber as [clientId]
FROM
    Location.Location root
WHERE
    LocationId = 'long-guid-here'
FOR
    XML AUTO, ELEMENTS

ОЧЕНЬ ЖАЛЬ! Я перепутал то, что вы просили. Я предпочитаю XML AUTO просто для удобства сопровождения, но я считаю, что любой из них эффективен. Мои извинения за недосмотр ;-)

0
5.08.2008 21:58:18

Я получил это с:

select
1 as tag,
null as parent,
AccountNumber as 'root!1!clientID!element'
from
Location.LocationMDAccount
where
locationid = 'long-guid-here'
for xml explicit
0
9.01.2013 05:42:01

Используя SQL Server 2005 (или предположительно 2008), я считаю, что для XML PATH гораздо проще поддерживать SQL, чем для явного XML (особенно, если SQL длиннее).

В таком случае:

SELECT AccountNumber as "clientID"
FROM Location.LocationMDAccount
WHERE locationid = 'long-guid-here'
FOR XML PATH (''), Root ('root');
0
17.08.2008 06:48:59
ВЫБЕРИТЕ 1 в качестве тега,
       ноль в качестве родителя,
       AccountNumber как «clientID! 1 !! элемент»
FROM Location.LocationMDAccount
ГДЕ locationid = 'long-guid-here'
FOR XML EXPLICIT, root ('root')
0
7.02.2016 01:07:46