从一个字符串的SQL SELECT步骤

时间:2018-05-08 19:09:47

标签: sql phpmyadmin

enter image description here我目前遇到了一个问题: 这是我的专栏步骤

Eat ; Sleep ; Gym ; Work

所有这个名称都有一个特定的数字,如步骤1 ; 2 ; 3 ; 4 问题是有时我的行不仅有 4 步骤1 ; 2 ; 3 ; 4 .... ; 12

我想要的代码示例(我会接受任何其他建议):

Count(String beetween“;”) 我虽然使用(子串和计数)来知道有多少“;”

虽然<步骤字符串

然后substring,col1,1是第1步但我不想要字符串我只是想告诉我这个位置是我的表“STEPS”中的STEP 1 ..直到while条件完成。 我已经知道如何获取行: DECLARE @i int = 0 WHILE @i < SELECT LEN(actions) - LEN(REPLACE(actions, ';', '')) BEGIN    select DISTINCT substring_index(substring_index(actions, ';', 1), ';', -1) from persons 我不知道如何标记所有那些“我的新栏目中的行数为步骤

SET @i = @i + 1 END

但我希望此步骤在另一个表中标记为1:

1 个答案:

答案 0 :(得分:0)

这有帮助吗? 如果我理解您正在寻找的内容,我就会在SQL Server中执行此操作:

declare @string varchar(max)='Eat ; Sleep ; Gym ; Work'
declare @string2 varchar(max)=''
declare @table table (rowid int identity, value varchar(max))
set @string=@string+';'
while @string<>''
begin
select @string2=left(@string, charindex(';', @string))
insert @table 
select ltrim(replace(@string2,';',''))
select @string = replace(@string, @string2,'') 
end 
select * from @table