私は以下を含むテーブルを持っています:
ID Names
1 Aaron, Betsy, Cindy
2 Dillon, Eric, Fred
名前の列を解析して、次のように返します。
ID Names
1 Aaraon
1 Betsy
1 Cindy
2 Dillon
名前の列を解析するが、IDをそれに結び付けないいくつかの関数をオンラインで見つけました。
私は以下を含むテーブルを持っています:
ID Names
1 Aaron, Betsy, Cindy
2 Dillon, Eric, Fred
名前の列を解析して、次のように返します。
ID Names
1 Aaraon
1 Betsy
1 Cindy
2 Dillon
名前の列を解析するが、IDをそれに結び付けないいくつかの関数をオンラインで見つけました。
このようなものはどうですか:
;with cte (id, name, names) as
(
select id,
cast(left(names, charindex(',',names+',')-1) as varchar(50)) name,
stuff(names, 1, charindex(',',names+','), '') names
from yourtable
union all
select id,
cast(left(names, charindex(',',names+',')-1) as varchar(50)) name,
stuff(names, 1, charindex(',',names+','), '') names
from cte
where names > ''
)
select id, name
from cte
order by id
SQL FiddlewithDemoを参照してください
結果を返します:
| ID | NAME |
---------------
| 1 | Aaron |
| 1 | Betsy |
| 1 | Cindy |
| 2 | Dillon |
| 2 | Eric |
| 2 | Fred |