我在存储过程(sql Server 2000)中传递一个字符串,如“123456788997877”(请注意我没有分隔管道等...)
我需要对字符串中的每个数字进行一些计算。
如何循环给定字符串中的每个数字并对其执行某些操作?
非常感谢
答案 0 :(得分:3)
您可以尝试这样的事情
DECLARE @String VARCHAR(MAX)
SELECT @String = '123456788997877'
DECLARE @Pos INT
SELECT @Pos = 1
WHILE @Pos < LEN(@String)
BEGIN
DECLARE @Current VARCHAR(1)
SET @Current = SUBSTRING(@String, @Pos, 1)
PRINT @Current
SET @Pos = @Pos + 1
END
ALS SqlServer 2008允许
SET @Pos += 1
答案 1 :(得分:2)
您甚至可以使用数字表格
declare @str varchar(100)
set @str = '123456788997877'
--Build a number table
declare @tblNumber table(num int)
insert into @tblNumber values(1)
insert into @tblNumber values(2)
insert into @tblNumber values(3)
insert into @tblNumber values(4)
insert into @tblNumber values(5)
insert into @tblNumber values(6)
insert into @tblNumber values(7)
insert into @tblNumber values(8)
insert into @tblNumber values(9)
insert into @tblNumber values(10)
insert into @tblNumber values(11)
insert into @tblNumber values(12)
insert into @tblNumber values(13)
insert into @tblNumber values(14)
insert into @tblNumber values(15)
select IndiChars = substring(@str,num,1) from @tblNumber
<强> IndiChars 强>
1
2
3
4
5
6
7
8
8
9
9
7
8
7
7
答案 2 :(得分:1)
答案 3 :(得分:0)
您在TSQL中有字符串函数。使用它们来剪切字符串,使用转换来解析你想要的任何部分。