两个拆分字符串合并为一个 table 变量
Two Split String Merging into one table variable
我有两个字符串变量,其值类似于
@id = '1#2#3#4#5'
@fid = '11#12#13#14#15'
在存储过程中,我使用 table 带有拆分字符串的变量来为两个变量
创建 table
Select Value from STRING_SPLIT(@id,'#')
Select Value from STRING_SPLIT(@fid,'#')
这给了我两个单独的 table 与 @id 和 @fid data.but 我需要将数据合并为一个 table。我需要输出看起来像
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.each @id 的值将与 @fid 的每个值关联,我不想要这种类型的结果。
还有其他替代方法吗?
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
我有两个字符串变量,其值类似于
@id = '1#2#3#4#5'
@fid = '11#12#13#14#15'
在存储过程中,我使用 table 带有拆分字符串的变量来为两个变量
创建 tableSelect Value from STRING_SPLIT(@id,'#')
Select Value from STRING_SPLIT(@fid,'#')
这给了我两个单独的 table 与 @id 和 @fid data.but 我需要将数据合并为一个 table。我需要输出看起来像
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.each @id 的值将与 @fid 的每个值关联,我不想要这种类型的结果。
还有其他替代方法吗?
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