【发布时间】:2022-01-17 20:56:59
【问题描述】:
我有一张由 :
组成的表格| Id | Text | JobId | JobsIds |
|---|---|---|---|
| 1 | toto | 45 | 56,58 |
| 2 | tata | 45 | 45.51 |
| 3 | titi | 46 |
我想拥有:
| Id | Text | CalculatedJobId |
|---|---|---|
| 1 | toto | 45 |
| 1 | toto | 56 |
| 1 | toto | 58 |
| 2 | tata | 45 |
| 2 | tata | 51 |
| 3 | titi | 46 |
我的尝试
我尝试过交叉申请:
SELECT
Id, Text, x.value as CalculatedJobId
FROM tbl_data
CROSS APPLY string_split(jobsIds, ',') x
WHERE x.value <> ''
但是jobIds中不包含jobId的情况消失了,jobsIds为空的情况也消失了。所以我得到了:
| Id | Text | CalculatedJobId |
|---|---|---|
| 1 | toto | 56 |
| 1 | toto | 58 |
| 2 | tata | 45 |
| 2 | tata | 51 |
我尝试过两次交叉应用,但语法不正确:
SELECT
Id, Text, x.value as CalculatedJobId, y.value
FROM tbl_data
CROSS APPLY string_split(jobsIds, ',') x
CROSS APPLY JobId y
WHERE x.value <> ''
我已经尝试过交叉连接,但这也不是解决方案......我无法弄清楚解决方案,请你帮帮我吗?
【问题讨论】:
-
联合怎么样?
标签: sql sql-server tsql