問題:
使用分隔符號(例如逗號)分割字串是資料處理中的常見需求。但是,許多在更高版本的SQL Server中有效的解決方案並不適用於SQL Server 2008 R2。
解:
對於SQL Server 2008 R2,一個可靠的方法是使用T-SQL建立一個自訂使用者定義函數(UDF)。以下名為dbo.splitstring的UDF可用於依指定分隔符號分割字串:
<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>
要使用此UDF,只需將要分割的字串作為參數傳遞,如下所示:
<code class="language-sql">SELECT * FROM dbo.splitstring('91,12,65,78,56,789')</code>
這將傳回一個表,其中包含原始字串的各個組成部分,以逗號分隔。
以上是如何在SQL Server 2008 R2中有效拆分字符串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!