我有一个在SQL中运行良好的分割功能。
Users表有一列experience
,其中包含以逗号分隔的字符串作为值,如此
ID | Exp
---------------------------
1 | C#,WEBAPI,SQL
2 | ASP.Net,MVC,HTML,CSS
3 | HTML,CSS,JavaScript
我正在尝试一些事情:
Select
U.ID, B.Text
From
Users U,
Split(U.Exp, ',') B
因为我需要结果:
ID | Exp
---------------------------
1 | C#
1 | WEBAPI
1 | SQL
2 | ASP.Net
2 | MVC
2 | HTML
2 | CSS
3 | HTML
3 | CSS
3 | JavaScript
如何在连接函数中使用连接表?
答案 0 :(得分:1)
这应该是这样的
Select U.ID, B.Text
From Users U
CROSS APPLY dbo.Split(U.Exp, ',') B
顺便说一下:OUTER APPLY
无论如何都会加入所有这些......
答案 1 :(得分:1)
您正在寻找cross apply
:
Select U.ID, B.Text
From Users U cross apply
dbo.Split(U.Exp, ',') B(Text);
如果您想将U
中的所有行保留为U.Exp
为空,那么您将使用outer apply
。