Heim >Datenbank >MySQL-Tutorial >Wie teilt man Zeichenfolgen in SQL Server 2008 R2 effizient auf?
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.
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!