2014-04-16 3 views
0

임시 테이블 @OrgTable을 선언하고이를 조직 코드를 나타내는 단일 열의 문자열로 채 웁니다. @OrgTable을 채우기 전에 코드는 '|'로 구분 된 연속 문자열의 일부입니다. 필자는 SplitString 함수를 작성하여 개별 코드를 테이블에 삽입했습니다. 마지막으로 NobocAP이라는 두 번째 함수를 호출하여 시작 날짜와 종료 날짜 및 @OrgTable의 각 조직 코드를 전달하므로 스크립트를 수정하여 각 조직 코드를 반복해야합니다. 내 스크립트는 어떤 형태로 만들어 져야합니까? SQL2000과 역 호환이 가능해야합니다.함수의 문자열 목록을 반복 할 때

DECLARE @OrgTable TABLE 
(
    elem varchar(1000) 
) 

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

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

답변

0

당신은

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 

으로 SQL 2000와 호환되는 cursor의를 사용하거나 다음과 같이 쿼리를 작성할 수 있습니다

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