Heim > Datenbank > MySQL-Tutorial > Wie kann „master..spt_values' für eine effiziente Spaltenaufteilung in SQL Server verwendet werden?

Wie kann „master..spt_values' für eine effiziente Spaltenaufteilung in SQL Server verwendet werden?

DDD
Freigeben: 2025-01-01 04:12:09
Original
691 Leute haben es durchsucht

How Can master..spt_values Be Used for Efficient Column Splitting in SQL Server?

Warum und wie man master..spt_values ​​für die Spaltenaufteilung verwendet

Zweck von master..spt_values

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.

Understanding Type = 'P'

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.

Spt_values ​​für die Spaltenaufteilung nutzen

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
Nach dem Login kopieren

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.

Vorteile der Verwendung von spt_values ​​für die Spaltenaufteilung

Einsatz von Master. .spt_values ​​für die Spaltenaufteilung bietet mehrere Vorteile:

  • Effizienz: Durch die Nutzung der vorhandenen Tabelle und Zahlenfolge vermeidet die Abfrage den Aufwand für das Erstellen und Füllen temporärer Tabellen.
  • Flexibilität: Die Projektionstabelle bietet einen großen Zahlenbereich und ermöglicht verschiedene Aufteilungsvorgänge für Spalten mit unterschiedlichen Werten Längen.
  • Kompatibilität: master..spt_values ​​ist eine integrierte Systemtabelle und daher universell in SQL Server-Installationen verfügbar, was Kompatibilität und Zuverlässigkeit gewährleistet.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage