ホームページ > データベース > mysql チュートリアル > SQL Server 2008 R2でComma delimited文字列を効率的に分割するにはどうすればよいですか?

SQL Server 2008 R2でComma delimited文字列を効率的に分割するにはどうすればよいですか?

DDD
リリース: 2025-01-25 06:56:08
オリジナル
469 人が閲覧しました

How Can I Efficiently Split Comma-Delimited Strings in SQL Server 2008 R2?

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>
ログイン後にコピー
|名前| | --- | --- | | 91 | | 12 | | 65 | | 78 | | 56 | | 789 |

このカスタム関数は、SQL Server 2008 R2。

以上がSQL Server 2008 R2でComma delimited文字列を効率的に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート