Heim >Datenbank >MySQL-Tutorial >Wie teilt man Zeichenfolgen in SQL Server 2008 R2 effizient auf?

Wie teilt man Zeichenfolgen in SQL Server 2008 R2 effizient auf?

Barbara Streisand
Barbara StreisandOriginal
2025-01-25 07:06:09244Durchsuche

Effiziente Aufteilung von Zeichenfolgen in SQL Server 2008 R2

Frage:

Das Aufteilen von Zeichenfolgen mithilfe von Trennzeichen (z. B. Kommas) ist in der Datenverarbeitung häufig erforderlich. Viele Lösungen, die in späteren Versionen von SQL Server funktionieren, funktionieren jedoch nicht mit SQL Server 2008 R2.

Lösung:

Für SQL Server 2008 R2 besteht eine zuverlässige Methode darin, eine benutzerdefinierte benutzerdefinierte Funktion (UDF) mit T-SQL zu erstellen. Die folgende UDF mit dem Namen dbo.splitstring kann verwendet werden, um eine Zeichenfolge durch ein angegebenes Trennzeichen zu teilen:

<code class="language-sql">CREATE FUNCTION dbo.splitstring (@stringToSplit VARCHAR(MAX))
RETURNS @returnList TABLE ([Name] [nvarchar](500))
AS
BEGIN
    DECLARE @name NVARCHAR(255)
    DECLARE @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>

Um diese UDF zu verwenden, übergeben Sie einfach die Zeichenfolge, die Sie teilen möchten, als Parameter wie folgt:

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

Dadurch wird eine Tabelle zurückgegeben, die die einzelnen Komponenten der ursprünglichen Zeichenfolge enthält, getrennt durch Kommas.

How to Efficiently Split Strings in SQL Server 2008 R2?

Das obige ist der detaillierte Inhalt vonWie teilt man Zeichenfolgen in SQL Server 2008 R2 effizient auf?. 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