0

私は以下を含むテーブルを持っています:

ID     Names 
1      Aaron, Betsy, Cindy 
2      Dillon, Eric, Fred 

名前の列を解析して、次のように返します。

ID   Names 
1    Aaraon 
1    Betsy 
1    Cindy 
2    Dillon 

名前の列を解析するが、IDをそれに結び付けないいくつかの関数をオンラインで見つけました。

4

1 に答える 1

2

このようなものはどうですか:

;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 |
于 2013-01-04T01:11:25.300 に答える