1. ホーム
  2. sql

[解決済み] 項目xにアクセスできるように文字列を分割するにはどうすればよいですか?

2022-03-18 20:55:20

質問

SQL Serverを使用して、項目xにアクセスできるように文字列を分割するにはどうすればよいですか?

文字列 "ハロージョン・スミス"を例にとります。この文字列をスペースで分割し、インデックス1の項目にアクセスすると、"John"を返すはずですが、どうすればよいのでしょうか?

どのように解決するのですか?

解決策は 区切り文字列をパースする SQL ユーザー定義関数 を参考にした。 コードプロジェクト ).

こんな簡単なロジックでOKです。

Declare @products varchar(200) = '1|20|3|343|44|6|8765'
Declare @individual varchar(20) = null

WHILE LEN(@products) > 0
BEGIN
    IF PATINDEX('%|%', @products) > 0
    BEGIN
        SET @individual = SUBSTRING(@products,
                                    0,
                                    PATINDEX('%|%', @products))
        SELECT @individual

        SET @products = SUBSTRING(@products,
                                  LEN(@individual + '|') + 1,
                                  LEN(@products))
    END
    ELSE
    BEGIN
        SET @individual = @products
        SET @products = NULL
        SELECT @individual
    END
END