ループで回して処理すれば何でも可能ですが、今回はXML型を間に挟むと簡単にいけるのでやってみました。
たとえば、"100,200,300,400,500"というCSVデータ(文字列)を、連番付けてテーブル変換のやり方です。
--変換の元となるCSVデータ
DECLARE @CSV varchar(max) = N'100,200,300,400,500';
--使用変数の定義
DECLARE @SRC nvarchar(max) = N'' --タグ組み立て用
,@DAT xml; --変換用
--CSVをタグに変換する
SET @SRC = N'' + REPLACE(@CSV,N',',N' ') + N' ';
--XML型にセット
SET @DAT = @SRC;
--テーブル型に変換(ついでに連番も付与する)
SELECT IDENTITY(INT,1,1) AS SEQ
,row.value('C [1]','int') AS DAT
INTO #CSV_TABLE
FROM @DAT.nodes('/R') AS T (row);
--変換結果の表示
SELECT *
FROM #CSV_TABLE
ORDER BY SEQ;
結果は以下のスクリーンショットのようになります。
タグは行「R」、列「C」だけあればOKです。
SQL-Server 2014あたりでも使えます。