Vă mulțumim pentru susținere

SQL Server 2005 pentru XML explicit - Aveți nevoie de formatare de ajutor

Am un tabel cu o structură cum ar fi:

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

Pentru a trece într-o altă procedură stocată, am nevoie ca XML să arate astfel:

 
    12345
    54321

Cel mai bun lucru pe care l-am putut face până acum a fost să-l cumpăr:


Folosesc această instrucțiune SQL:

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

Până în prezent, am analizat documentația privind pagina MSDN , dar nu am ieșit cu rezultatele dorite.


@KG,

Al tău mi-a dat de fapt această ieșire:


  
    10705
  

Am de gând să rămân cu FOR XML EXPLICIT de la Chris Leon deocamdată.

0
adăugat editat

5 răspunsuri

M-am prins cu:

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
adăugat

Încearcă asta, Chris:

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

IMI PARE FOARTE RAU! Am amestecat ceea ce cereai. Prefer preferința XML AUTO doar pentru ușurința de întreținere, dar cred că una dintre ele este eficientă. Imi cer scuze pentru supravegherea ;-)

0
adăugat
SELECT 1             as tag,
       null          as parent,
       AccountNumber as 'clientID!1!!element'
FROM Location.LocationMDAccount
WHERE locationid = 'long-guid-here'
FOR XML EXPLICIT, root('root')
0
adăugat

încerca

SELECT
    1 AS Tag,
    0 AS Parent,
    AccountNumber AS [Root!1!AccountNumber!element]
FROM
    Location.LocationMDAccount
WHERE
    LocationID = 'long-guid-here'
FOR XML EXPLICIT
0
adăugat

Folosind SQL Server 2005 (sau probabil 2008) găsesc pentru XML PATH pentru a permite mult mai ușor de întreținut SQL decât pentru XML Explicit (mai ales când SQL este mai lung).

În acest caz:

SELECT AccountNumber as "clientID"
FROM Location.LocationMDAccount
WHERE locationid = 'long-guid-here'
FOR XML PATH (''), Root ('root');
0
adăugat