Wie funktioniert oder Logik von Stuff & XML-Pfad in SQL

8

Meine Ausgabe ist korrekt, aber ich möchte wissen, wie STUFF tatsächlich funktioniert.

Ich habe die einfache Abfrage, die mir die Gesamtzahl der Monate zwischen @startDate & amp; @endDate .

Ich speichere diese Monate in den @cols mit Hilfe von STUFF .

Abfrage ist wie folgt:

%Vor%
  1. "," in der Abfrage sollte vor den Werten gedruckt werden, aber es wird wie folgt gedruckt: O / P.
  2. Wenn ich XML Path aus dem Zeug entferne, bekomme ich null Wert.
  3. Wie eigentlich STUFF mit XML-Pfad funktioniert

Hier ist meine Ausgabe:

%Vor%     
Hardik Parmar 29.07.2014, 07:25
quelle

1 Antwort

18

Stuff arbeitet mit Strings, das einzige, was es in Ihrem SQL macht, ist das erste Komma von Position 1 zu entfernen. Ohne Zeug würde es aussehen wie a, b, c, d, aber wenn Sie die Position mit einem leeren Wert füllen es verwandelt es in a, b, c, d

Ihre Frage ist wahrscheinlich mehr darüber, was FOR XML tut. In diesem Fall wird FOR XML als "Trick" angewendet, um alle Zeilen von #tempDates in einer langen, durch Komma getrennten Zeichenfolge zu verknüpfen, a, b, c, d und stuff entfernt gerade das erste Komma.

Für xml wird eine Zeichenkette x = ', a' + ', b' + ', c' + ', d' erzeugt, damit x als ', a, b, c, d'

endet

Stuff(x,1,1,'') ersetzt nur das Komma in Position 1 zu 1 mit '' ist also jetzt x = 'a, b, c, d'

%Vor%     
Jayvee 29.07.2014, 08:20
quelle