我有两个字符串变量,其值如
@id = '1#2#3#4#5'
@fid = '11#12#13#14#15'
在存储过程中,我使用表格变量与拆分字符串,以使表格为两个可怕的
Select Value from STRING_SPLIT(@id,'#')
Select Value from STRING_SPLIT(@fid,'#')
这给了我两个带有@id和@fid数据的独立表。但我需要将数据合并到一个表中。我需要输出看起来像
fid|id
11 |1
12 |2
13 |3
14 |4
15 |5
我该怎么做?
但如果我喜欢这样的话
select a.value,b.Value FROM STRING_SPLIT(@fid,'#') a,STRING_SPLIT(@id,'#') b
我得到25行而不是5行@id的值将与@fid的每个值相关联,我不想要这种类型的结果。
任何其他替代方法吗?
答案 0 :(得分:1)
SELECT t1.ID
, t2.FID
FROM (
Select Value As ID
, ROW_NUMBER() OVER (ORDER BY Value) rn
from STRING_SPLIT(@id,'#')
) t1
INNER JOIN
(
Select Value AS FID
, ROW_NUMBER() OVER (ORDER BY Value) rn
from STRING_SPLIT(@fid,'#')
) t2 ON t1.rn = t2.rn