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?
而不是 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)
| 归档时间: |
|
| 查看次数: |
48 次 |
| 最近记录: |