SQL Server 2008 r2
での
t-sql文字列分割SQL Server 2008 R2には組み込みの文字列分割機能がなく、コンマ分離された文字列処理が困難になります。 この記事では、カスタム関数を使用した堅牢なソリューションを示しています。
カスタムスプリット関数の作成
以下の関数は、Comma delimited文字列を効率的に分割します:dbo.splitstring
<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>
関数の使用
関数を使用するには、パラメーターとして分割する文字列を渡すだけです。これにより、各コンマ区切り値が別の行にあるテーブルが生成されます。
<code class="language-sql">SELECT * FROM dbo.splitstring('91,12,65,78,56,789');</code>
このカスタム関数は、SQL Server 2008 R2。
以上がSQL Server 2008 R2でComma delimited文字列を効率的に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。