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!