我在 SQL Server 2008 中有一个过程,我有一个如下查询:
SELECT @symbol += N'' + acc_no FROM dbo.sav_acc_mcg where scheme_id = @scheme_id and status in (1,2) order by acc_no
从表中提取所有“acc_no”并将其保存到@symbol。但是“acc_no”的长度可能会有所不同。所以我想我可以使用分隔符来分隔每个“acc_no”,然后使用循环通过检查分隔符来提取每个“acc_no”。我还需要计算“acc_no”的数量。如果每个“acc_no”的长度相同且没有分隔符,例如 10。我可以使用以下代码来计算“acc_no”的数量:
@count = len(@symbol)/10
为了提取每个“acc_no”,我可以使用以下代码:
@loop = 0
在while循环中运行下面的代码,直到@loop<@count:
@acc_no = SUBSTRING(@symbol, (@loop*10)+1 , 10)
...................,ETC
但是由于“acc_no”的长度不同,上面的代码将不起作用。
如何完成工作。我的要求是:如果
@symbol = PS-000001,GS-000002,CFS-000008,NS001-000016,CFS-000017,LS2-000019,......etc
我需要计算“acc_no”的数量,然后为我的其他工作提取每个“acc_no”。
帮助是最受欢迎的。