【SQL Server】SQL Server でカンマ区切り のデータの扱う

【1】カンマ区切りデータを分ける

* そんなメソッドないので、ストアドで独自実装

1)サンプル

CREATE FUNCTION Split
(
   @inputeValue VARCHAR(MAX),
   @delimiter CHAR(1)
)
RETURNS @returnTable TABLE(SplitedValue VARCHAR(MAX))
BEGIN
  -- 入力値の最大文字列数を取得
  DECLARE inputeValueLength INT
  SET @inputeValueLength = LEN(@inputeValue) + 1

  -- ループカウンター
  DECLARE loopCount INT
  SET @loopCount = 1

  -- ループで処理するデータ
  DECLARE nextValue VARCHAR(MAX)
  SET @nextValue = ''

  -- ループ
  WHILE(@loopCount < @inputeValueLength + 1)
  BEGIN
    -- 区切り文字 @delimiter があるかどうか
    IF(SUBSTRING(@inputeValue, @loopCount, 1) = @delimiter)
    BEGIN
      -- 戻り値になるデータをセット
      INSERT INTO @returnTable
      SELECT @nextValue

      -- 次に処理するデータをリセット
      SET @nextValue = ''
    END
    ELSE
    BEGIN
      -- 戻り値になるデータをセット
      SET @nextValue = @nextValue + SUBSTRING(@inputeValue, @loopCount, 1)
    END

    --  ループカウントアップ
    @loopCount += 1
  END

  -- 戻り値になるデータをセット
  INSERT INTO @returnTable
  SELECT @nextValue

  RETURN
END

参考文献
http://rope0419.blog19.fc2.com/blog-entry-101.html

【2】カンマ区切りデータにする

* 以下のサイト参照

http://necos-plan.blogspot.jp/2011/12/sqlserver.html
http://blog.livedoor.jp/oolv/archives/370268.html

【3】カンマ区切りデータが一意で、条件だけに必要である場合

* LIKEを使用する

イメージ

LIKE '%' + @code + '%'

関連記事

ストアド ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2010/08/06/112528

SQL Server

ストアド ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2012/01/01/234650
ストアド ~ 基本編 / カーソル ~
https://dk521123.hatenablog.com/entry/2012/01/02/014343
ストアド ~ サンプル編 ~
https://dk521123.hatenablog.com/entry/2010/03/11/223208