我有一个包含一个表:SQL - 解析字符串
ID Names
1 Aaron, Betsy, Cindy
2 Dillon, Eric, Fred
我想通过名称列解析并使其返回:
ID Names
1 Aaraon
1 Betsy
1 Cindy
2 Dillon
我已经发现了几个功能,网上说解析名称列,但不会将ID绑定回它。
我有一个包含一个表:SQL - 解析字符串
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
返回结果:
| ID | NAME |
---------------
| 1 | Aaron |
| 1 | Betsy |
| 1 | Cindy |
| 2 | Dillon |
| 2 | Eric |
| 2 | Fred |
谢谢!完美作品 – user1411074
@ user1411074乐于助人。如果此答案对您有帮助,请务必通过左侧的复选标记进行接受。它将帮助未来的访问者访问该网站,并获得接受的声誉。 – Taryn
有没有你不已经有一个一到许多特殊的原因关系建模?或者,这个查询是你计划迁移到适当的一对多关系的一部分吗? – cdhowie
你正在使用什么rdbms? MySQL的?甲骨文? sql server?... –
您使用的是什么RDBMS? – Taryn