Heim >Datenbank >MySQL-Tutorial >Wie kann ich effizient mit Komma-Delimited-Zeichenfolgen in SQL Server 2008 R2 teilen?

Wie kann ich effizient mit Komma-Delimited-Zeichenfolgen in SQL Server 2008 R2 teilen?

DDD
DDDOriginal
2025-01-25 06:56:08537Durchsuche

How Can I Efficiently Split Comma-Delimited Strings in SQL Server 2008 R2?

T-SQL-Zeichenfolgenaufteilung in SQL Server 2008 R2

SQL Server 2008 R2 verfügt nicht über eine integrierte Funktionalität zur Zeichenfolgenaufteilung, was die Verarbeitung von durch Kommas getrennten Zeichenfolgen zu einer Herausforderung macht. Dieser Artikel zeigt eine robuste Lösung mithilfe einer benutzerdefinierten Funktion.

Erstellen einer benutzerdefinierten Split-Funktion

Die folgende dbo.splitstring-Funktion teilt durch Kommas getrennte Zeichenfolgen effizient auf:

<code class="language-sql">CREATE FUNCTION dbo.splitstring (@stringToSplit VARCHAR(MAX))
RETURNS @returnList TABLE ([Name] [nvarchar](500))
AS
BEGIN
    DECLARE @name NVARCHAR(255), @pos INT;
    WHILE CHARINDEX(',', @stringToSplit) > 0
    BEGIN
        SELECT @pos = CHARINDEX(',', @stringToSplit);
        SELECT @name = SUBSTRING(@stringToSplit, 1, @pos - 1);
        INSERT INTO @returnList SELECT @name;
        SELECT @stringToSplit = SUBSTRING(@stringToSplit, @pos + 1, LEN(@stringToSplit) - @pos);
    END
    INSERT INTO @returnList SELECT @stringToSplit;
    RETURN;
END;</code>

Funktionsnutzung

Um die Funktion zu verwenden, übergeben Sie einfach die zu teilende Zeichenfolge als Parameter:

<code class="language-sql">SELECT * FROM dbo.splitstring('91,12,65,78,56,789');</code>

Dadurch wird eine Tabelle mit jedem durch Kommas getrennten Wert in einer separaten Zeile erstellt:

| Name | |---|---| | 91 | | 12 | | 65 | | 78 | | 56 | | 789 |

Diese benutzerdefinierte Funktion bietet eine zuverlässige Methode zum Umgang mit durch Kommas getrennten Zeichenfolgen innerhalb der Einschränkungen von SQL Server 2008 R2.

Das obige ist der detaillierte Inhalt vonWie kann ich effizient mit Komma-Delimited-Zeichenfolgen in SQL Server 2008 R2 teilen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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