mssql 루프문 질문입니다! 0 1 3,044

by 지메이비 [SQL Query] MSSQL [2024.02.15 09:50:34]


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
declare @i int
declare @cnt int
declare @ABC varchar(50) set @ABC =''
 
select @cnt = count(A)
from B
where companyCode='3036'
and carNum='1004238'               
and isUse='Y'
 
set @i = 0
while(@i < @cnt)
begin
    select @ABC =carcode
    from B
    where companyCode='3036'
        and carNum='1004238'               
        and isUse='Y'
 
    set @i = @i + 1
    print(@ABC)
 
end

이렇게 쓰고있는데 

select @cnt = count(A) from B where companyCode='3036' and carNum='1004238' and isUse='Y'

이 쿼리값은 3개가 나옵니다

하지만 

select @ABC =carcode from B where companyCode='3036' and carNum='1004238' and isUse='Y' 이값은 각각 

1000002
1000003
1000005

가 있습니다. 하지만 저 루프문을 태우면 1000005만 3번 나오는상황이라 이럴땐 어떤식으로 처리해야할지 알려주시면 감사하겠습니다!

by 마농 [2024.02.15 12:21:47]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
DECLARE @cnt INT SET @cnt = 0
DECLARE @abc VARCHAR(50) SET @abc = ''
 
DECLARE cur CURSOR
FOR
SELECT carcode
  FROM b
 WHERE companyCode = '3036'
   AND carNum      = '1004238'
   AND isUse       = 'Y'
 
OPEN cur
FETCH NEXT FROM cur INTO @abc
WHILE @@fetch_status = 0
BEGIN
    @cnt = @cnt + 1
    print(@abc)
    FETCH NEXT FROM cur INTO @abc
END
 
CLOSE cur
DEALLOCATE cur

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입