Sql 字符串拆分
ALTER PROCEDURE fdrp_SearchUnNormalOrders
AS
DECLARE @SpecTemp VARCHAR(500)
DECLARE mycursor CURSOR FOR
SELECT Spec,OrderdetailID FROM dbo.OrderDetail
OPEN mycursor
DECLARE @Spec VARCHAR(8000)
SET @Spec = ''
DECLARE @OrderDetailID VARCHAR(100)
SET @OrderDetailID = ''
DECLARE @Num INT --统计规格备注中加号出现的次数
SET @Num = 0
DECLARE @i INT
SET @i = 0
FETCH next FROM mycursor INTO
@Spec
,@OrderDetailID
WHILE(@@fetch_status = 0)
BEGIN
PRINT @OrderDetailID
PRINT @Spec
IF(LEN(@Spec) > 0)
BEGIN
SET @Num = LEN(@Spec)-LEN(REPLACE(@Spec,'+',''))
WHILE @i <= @Num
BEGIN
IF(CHARINDEX('+', @Spec, 0) > 0)
BEGIN
SET @SpecTemp = SUBSTRING(@Spec, 1, (CHARINDEX('+', @Spec, 0) -1 ))
PRINT @SpecTemp
END
ELSE
BEGIN
SET @SpecTemp = @Spec
PRINT @SpecTemp
END
SET @Spec = SUBSTRING(@Spec, CHARINDEX('+', @Spec, 0) + 1 ,LEN(@Spec))
SET @i = @i + 1
END
END
FETCH next FROM mycursor INTO
@Spec
,@OrderDetailID
END
CLOSE mycursor
DEALLOCATE mycursor
我想问一下,为什么我游标里的 @SpecTemp 只循环一次,而不是随着游标反复执行