ホームページ >データベース >mysql チュートリアル >SQL Server 2008 R2 で文字列を効率的に分割するにはどうすればよいですか?
質問:
区切り文字 (カンマなど) を使用して文字列を分割することは、データ処理において一般的に必要となります。ただし、新しいバージョンの 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 中国語 Web サイトの他の関連記事を参照してください。