0

我有两个字符串变量,其值类似于

@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 的每个值相关联,我不想要这种类型的结果。

还有其他选择吗?

4

1 回答 1

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 
于 2018-01-18T11:20:34.600 回答