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