两个Split String合并为一个表变量

时间:2018-01-18 11:14:54

标签: sql-server sql-server-2016-express

我有两个字符串变量,其值如

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

任何其他替代方法吗?

1 个答案:

答案 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