Ich habe diese Frage:
SELECT DISTINCT
f1.CourseEventKey,
STUFF
(
(
SELECT
'; ' + Title
FROM
(
SELECT DISTINCT
ces.CourseEventKey,
f.Title
FROM
CourseEventSchedule ces
INNER JOIN Facility f
ON f.FacilityKey = ces.FacilityKey
WHERE
ces.CourseEventKey IN
(
SELECT CourseEventKey
FROM @CourseEvents
)
) f2
WHERE
f2.CourseEventKey = f1.CourseEventKey
FOR XML PATH('')
)
, 1, 2, '')
FROM
(
SELECT DISTINCT
ces.CourseEventKey,
f.Title
FROM
CourseEventSchedule ces
INNER JOIN Facility f
ON f.FacilityKey = ces.FacilityKey
WHERE
ces.CourseEventKey IN
(
SELECT CourseEventKey
FROM @CourseEvents
)
) f1;
Es erzeugt diese Ergebnismenge:
CourseEventKey Titles
-------------- ----------------------------------
29 Test Facility 1
30 Memphis Training Room
32 Drury Inn & Suites Creve Coeur
Die Daten sind korrekt, aber ich kann sie nicht haben, FOR XML PATH('')
da sie bestimmten Sonderzeichen entgehen.
Um es klar auszudrücken, verwende ich, FOR XML PATH('')
weil es möglich ist, dass Datensätzen mit demselben Titel CourseEventKey
mehrere Facility
Titel zugeordnet sind.
Wie kann ich die von dieser Abfrage zurückgegebenen Daten ohne Verwendung beibehalten FOR XML PATH('')
?
sql-server
xml
concat
Kehlan Krumme
quelle
quelle
Antworten:
Versuchen Sie, Ihre Aussage so zu ändern, dass sie dieser entspricht:
Dies verwendet die
.value xml
Methode , um Ihr Berechtigungsproblem zu lösen.quelle