迭代函数中的字符串列表

时间:2014-04-16 16:06:35

标签: sql sql-server sql-server-2000

我已经声明了一个临时表@OrgTable,我用一列表示组织代码的字符串填充它。 在填充@OrgTable之前,代码是连续字符串的一部分,由' |'分隔。 我已经编写了一个函数SplitString来执行此操作,然后将各个代码插入到表中。 最后,我调用了第二个函数NBOCAP,我在其中传递了开始日期,结束日期和@OrgTable中的每个组织代码,因此我需要修改我的脚本,以便遍历每个组织代码。我的脚本应采用什么形式?它需要向后兼容SQL2000。

DECLARE @OrgTable TABLE
(
    elem varchar(1000)
)

INSERT INTO @OrgTable
SELECT * FROM SplitString(@OrgCodeString, '|')

SELECT * FROM NBOCAP(@StartDate,@EndDate,organisation code)

1 个答案:

答案 0 :(得分:0)

您可以使用与sql 2000兼容的cursor

declare @elem varchar(1000)

declare c cursor for
select elem from @OrgTable

open c
Fetch next from c into @elem

while @@fetch_Status = 0
begin
  --you have elem here
  NBOCAP(@StartDate,@EndDate,@elem)
  Fetch next from c into @elem
end

close c
deallocate c

或者您可以按如下方式编写查询:

DECLARE @OrgTable TABLE
(
    elem varchar(1000)
)

INSERT INTO @OrgTable
SELECT * FROM SplitString(@OrgCodeString, '|')

Select n.* from @OrgTable o inner join
NBOCAP(@StartDate,@EndDate,o.elem) n