In SQL Server 2008Wie für Aggregatfunktionen in XML umgewandelt
ich eine Abfrage wie die ausgeführt werden müssen:
DECLARE @x AS xml
SET @x=N'<r><c>First Text</c></r><r><c>Other Text</c></r>'
SELECT @x.query('fn:max(r/c)')
Aber Rückkehr nichts (offenbar weil convert xdt: untypedAtomic zu numerisch)
Wie man r/c zu varchar "wirft"?
So etwas wie
SELECT @x.query('fn:max(«CAST(r/c «AS varchar(20))»)')
Edit: Mit Knoten die Funktion MAX von T-SQL ist keine fn: max Funktion In diesem Code:
DECLARE @x xml;
SET @x = '';
SELECT @x.query('fn:max((1, 2))');
SELECT @x.query('fn:max(("First Text", "Other Text"))');
beide Abfrage Rückkehr erwartet: 2 und "Anderer Text" Fn: max kann bewerten Ausdruck Ausdruck Ad-hoc. Aber die erste Abfrage funktioniert nicht. Wie erzwinge String-Argumente zu Fn: Max?
Können Sie ein Beispiel für die Ausgabe Sie suchen? – Suirtimed
Ich bearbeite Post. Ich brauche Max (Erster Text, Anderer Text) = Anderer Text als Ausgabe von SELECT @ x.query ('fn: max (r/c)'). Mit numerischen Daten funktioniert diese Abfrage – renegm
Sorry, ich glaube nicht, dass Sie erreichen können, was Sie wollen - mit .nodes() ist der einzige Weg, soweit ich sehen kann ..... –