Trotz seiner undokumentierter Status, Master..spt_values ist eine wertvolle Tabelle, die es Systemprozeduren in Microsoft SQL Server ermöglicht, verschiedene Funktionen effektiv auszuführen. Es enthält eine Sammlung von Referenztabellen und Projektionsdaten, die von diesen Systemprozeduren verwendet werden, einschließlich Suchwerten für Datentypen, Rollen und andere Metadaten.
Type = 'P' bezeichnet die Projektionstabelle innerhalb von master..spt_values. Diese Tabelle stellt eine fortlaufende Zahlenfolge von 0 bis 2047 bereit, die zum Durchführen von Projektionen oder Durchläufen durch Daten verwendet werden kann.
Die in master..spt_values gespeicherten Rohdaten sind nicht für die direkte Verwendung durch Benutzerabfragen vorgesehen. Seine Projektionsfunktionen sind jedoch besonders nützlich für die Aufteilung von Daten innerhalb einer einzelnen Spalte.
Stellen Sie sich eine Tabelle vor, in der eine Spalte eine durch Kommas getrennte Liste von Werten enthält, z. B. „1,2,3“. Um diese Spalte in mehrere Zeilen umzuwandeln, können Sie spt_values wie folgt verwenden:
SELECT 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
In diesem Szenario iteriert die Abfrage durch die spt_values-Tabelle (Typ = 'P') und verwendet die Zahlenfolge als Führung Split-Betrieb. Es isoliert effektiv jeden Wert innerhalb der durch Kommas getrennten Liste und erstellt unterschiedliche Zeilen im Ergebnissatz.
Einsatz von Master. .spt_values für die Spaltenaufteilung bietet mehrere Vorteile:
Das obige ist der detaillierte Inhalt vonWie kann „master..spt_values' für eine effiziente Spaltenaufteilung in SQL Server verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!