我正在使用SQL Server 2014,我有以下代码:
declare @listOfIDs table (id int);
insert @listOfIDs(id) values(39572),(39793);
我想做同样的事情来做同样的结果:
declare @listOfIDs table (id int);
insert @listOfIDs(id) split('39572,39793');
有什么想法吗?
答案 0 :(得分:0)
如果你的split函数是一个表函数,那么你应该使用如下的insert语句。
Insert @listofIDs(id)
Select * From split('39572,39793');
答案 1 :(得分:0)
那里有很多分割/解析功能。
这是一个
declare @listOfIDs table (id int);
insert @listOfIDs(id) Select Key_Value from [dbo].[udf-Str-Parse]('39572,39793',',')
Select * from @listOfIDs
返回
id
39572
39793
UDF(如果需要)
CREATE FUNCTION [dbo].[udf-Str-Parse] (@String varchar(max),@Delimeter varchar(10))
--Usage: Select * from [dbo].[udf-Str-Parse]('Dog,Cat,House,Car',',')
-- Select * from [dbo].[udf-Str-Parse]('John Cappelletti was here',' ')
Returns @ReturnTable Table (Key_PS int IDENTITY(1,1), Key_Value varchar(max))
As
Begin
Declare @XML xml;Set @XML = Cast('<x>' + Replace(@String,@Delimeter,'</x><x>')+'</x>' as XML)
Insert Into @ReturnTable Select ltrim(rtrim(String.value('.', 'varchar(max)'))) FROM @XML.nodes('x') as T(String)
Return
End
修改强>
如果您只是运行
,仅供参考Select * from [dbo].[udf-Str-Parse]('39572,39793',',')
返回
Key_PS Key_Value
1 39572
2 39793
我发现序列号(Key_PS)有时很有价值。