使用交叉应用展开表格

dhs*_*402 -3 sql sql-server ssms

我想使用交叉应用以数字列表作为输入来扩展表格。例如,原始表将如下所示:

ID
一种
C

然后,我有一个未知长度的随机数列表作为变量传递,如 1、2、3。在此之后,表格将如下所示:

ID N
一种 1
一种 2
一种 3
1
2
3
C 1
C 2
C 3

我尝试在 Python 中执行此操作,然后将数据帧上传到数据库,但由于表有数百万行,因此数据插入部分花费的时间非常长。我想知道是否有一种最佳方法可以完全在 SSMS 中执行此操作并仅使用 SQL?

Joh*_*tti 5

而不是 a CROSS APPLY,也许 aCROSS JOIN会做。

例子

Declare @YourTable table (ID varchar(25))
Insert Into @YourTable values
('A'),('B'),('C')

Declare @String varchar(max)='1,2,3'

Select *
 From  @YourTable 
 Cross Join string_split(@String,',')
Run Code Online (Sandbox Code Playgroud)

结果

ID  value
A   1
A   2
A   3
B   1
B   2
B   3
C   1
C   2
C   3
Run Code Online (Sandbox Code Playgroud)