【发布时间】:2015-05-22 08:03:04
【问题描述】:
DECLARE @valueList varchar(8000)
DECLARE @pos INT
DECLARE @len INT
DECLARE @value varchar(8000)
SET @valueList = '00000129563698'
set @pos = 0
set @len = 0
WHILE CHARINDEX('0', @valueList, @pos+1)<>0
BEGIN
set @len = CHARINDEX('0', @valueList, @pos+1) - @pos
set @value = SUBSTRING(@valueList, @pos, @len)
PRINT @value
set @pos = CHARINDEX('0', @valueList, @pos+@len) +1
END
我想从@valueList 变量中删除零并将剩余部分存储在另一个变量中。
如何在 sql 中做到这一点?
【问题讨论】:
-
您是在问如何在单个语句中执行此操作,即没有 WHILE 循环吗?
-
是的,任何可能性都可以。但是@valueList = '0000022956497698' 这会改变
标签: sql-server while-loop charindex