Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
循环一个以逗号分隔的变量,并将每个项输入到SQL表的每一行_Sql_Xml_Sql Server 2008_Loops - Fatal编程技术网

循环一个以逗号分隔的变量,并将每个项输入到SQL表的每一行

循环一个以逗号分隔的变量,并将每个项输入到SQL表的每一行,sql,xml,sql-server-2008,loops,Sql,Xml,Sql Server 2008,Loops,假设变量x等于:x='3,4,5,6,7' 然后我有一个表@tmpTable,有两列(respID和Responses) 在我的@tmpTable上,每行的respid为null 我希望每一行的ID都是上面x变量上的值。(例如,第1行的respID=1,第2行的respID=2..等等..) 如何在SQL中执行此操作?您可以执行类似的操作 SELECT Responses.value('(/x/@ID)[1]', 'int') AS [ID], Responses FROM Your

假设变量x等于:x='3,4,5,6,7'

然后我有一个表@tmpTable,有两列(respID和Responses)

在我的@tmpTable上,每行的respid为null

我希望每一行的ID都是上面x变量上的值。(例如,第1行的respID=1,第2行的respID=2..等等..)


如何在SQL中执行此操作?

您可以执行类似的操作

SELECT 
  Responses.value('(/x/@ID)[1]', 'int') AS [ID],
  Responses
FROM YourTable

很抱歉,您在帖子中的图像现在已消失,因此我不记得表名或确切的xml。在google上搜索“tsql xml xpath”。

使用SSMS可以实现以下目标:

declare @S varchar(20)
set @S = '1,2,3,4,5'
declare @tempTable as table (col1 varchar(max), col2 varchar(max))

While len(@s) > 0
begin
    insert into @tempTable(col1) select left(@S, charindex(',', @S+',')-1)
    set @S=stuff(@S, 1, charindex(',', @S+','), '')
end

select * from @tempTable

您正在使用SQL Server(tsql)吗?我只想从变量x中获取ID。其值为“3,4,5,6,7”。我不想从xml中获取值,因为它更复杂