Master..spt_values ist eine Systemtabelle in Microsoft SQL Server, die enthält verschiedene Nachschlage- und Projektionstabellen, die von gespeicherten Systemprozeduren verwendet werden. Es ermöglicht eine effiziente Datenbearbeitung durch die Bereitstellung vordefinierter Zahlenfolgen, Bitmasken und anderer häufig benötigter Werte.
Nachschlagetabellen ermöglichen die Erweiterung numerischer Werte auf ihre entsprechenden Zeichenfolgendarstellungen, beispielsweise die Konvertierung von Sperrtypen von Zahlen in Namen . Andererseits bieten Projektionstabellen eine Möglichkeit, einen Wertebereich zu durchlaufen, was zum Aufteilen von Spalten in mehrere Zeilen nützlich ist.
Typ „P“ in Master..spt_values bezeichnet eine Projektionstabelle. Sie enthält eine Folge aufeinanderfolgender Zahlen von 0 bis 2047. Diese Tabelle ermöglicht die effiziente Projektion B. Zählen oder Aggregation.
Der Vorteil der Verwendung von master..spt_values (Typ „P“) zum Teilen einer CSV-Spalte liegt in seiner Leistung und Effizienz. Durch die Nutzung der vorberechneten Zahlenfolge kann SQL Server das Erstellen und Einfügen in eine temporäre Tabelle vermeiden, was bei einer dynamischen Generierung der Zahlenfolge erforderlich wäre. Dies kann die Ausführungsgeschwindigkeit von Abfragen, die Spaltenaufteilungsvorgänge durchführen, erheblich verbessern.
Der betreffende Code zeigt, wie eine CSV-Spalte mithilfe von master..spt_values:
SELECT T.col1, RIGHT(LEFT(T.col4,Number-1), CHARINDEX(',',REVERSE(LEFT(','+T.col4,Number-1)))) FROM master..spt_values, table1 T WHERE Type = 'P' AND Number BETWEEN 1 AND LEN(T.col4)+1 AND (SUBSTRING(T.col4,Number,1) = ',' -- OR SUBSTRING(T.col4,Number,1) = '') --this does not work correctly anyway
Das obige ist der detaillierte Inhalt vonWie kann master..spt_values durch Kommas getrennte Werte in SQL Server effizient aufteilen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!