我试图在一个存储过程中编写一个SQL Server 2008 R2语句,该语句将9个字符的SKU值作为输入,并且必须在该输入字段的特定位置获取某些字符值并将它们连接为一个值。
我写了以下内容,但它似乎没有用,尽管那可能只是我。在纸上似乎很有道理...
IF NOT @SKU = '' BEGIN
DECLARE @StringPos SMALLINT = 1, @StringLen SMALLINT, @ColNum SMALLINT, @ItemVal VARCHAR(10)
SET @StringLen = LEN(@RecallSortMode)
WHILE @StringPos <= @StringLen BEGIN
SET @ColNum = SUBSTRING(@RecallSortMode, @StringPos, 1)
SET @ItemVal += SUBSTRING(@SKU, @ColNum, 1)
SET @StringPos = @StringPos + 1
END
PRINT 'Item Val: ' + @ItemVal
END
因此,如果我需要的列是1、2和9,则@RecallSortMode
的值将为129
,如果@SKU
的值是9个字符长且为{{1 }}我正在寻找要返回987654321
的{{1}}的语句。
这是工作还是我做错了什么?似乎可以编译,但是我什么也没得到。
谢谢