を説明願っていますこのSQL split string function まず、データベース上でこの関数を作成する必要があります。あなたは、SQL Server 2016を使用していない場合は
は残念ながら、私たちは、スプリット機能
を作成する必要が私の代わりにSQLサブSELECTステートメントまたは一時テーブルを使用して、単一の文で、すべての手順を管理するためにSQL Server CTE query structureを使用しています。複数CTE構造を理解することが
は、私はそれが を役に立てば幸い上記のチュートリアルに
を参照してください、あなたがそれらを追加することによって何を意味する
declare @str varchar(max) = '1,2,3,4;7,3,8,4;3,9,0,4;'
create table stringtorows (id int, col1 int, col2 int, col3 int, col4 int)
;with cte as (
select
id rowid, val rowdata
from dbo.split(@str,';')
where val <> ''
), cte2 as (
select
rowid, id colid, val coldata
from cte
cross apply dbo.Split(rowdata,',')
), cte3 as (
select
rowid,
case when colid = 1 then coldata end col1,
case when colid = 2 then coldata end col2,
case when colid = 3 then coldata end col3,
case when colid = 4 then coldata end col4
from cte2
)
insert into stringtorows
select
rowid, max(col1) col1, max(col2) col2, max(col3) col3, max(col4) col4
from cte3
group by rowid
select * from stringtorows
最初のテストデータベースでスクリプトの下に確認してください?あなたを混乱させ、それを混乱させる何の答えが見つかりましたか? –