while start <= loop_cnt) <-- while 조건문! start가 loop_cnt 보다 같거나 작을때까지...
begin <-- 본문 시작 알림 (End 문이 나와야 한다.
if loop_start = 1 <-- Sql 문 안에서 If문을 begin 없이 사용하면 바로 밑 한줄까지만 적용된다.(기존의 If문의 End If가 없을 경우 처럼 바로 및 한줄만 적용되는 것은 같다. 만약 2줄이상 적용하려면,
set fdegree2 = fdegree
If loop_start = 1 begin
(then 대신 적용하여 사용 하고 마지막 부분에 End를 사용하여 마무리 해준다.) 하고 ~~~ 끝나는 지점에 End 하고 사용한다.
set a += 1
set b == a
end
else begin ~~
~~~
End
else
set fdegree2 = loop_start * 5 +1
exec sp_executesql sql1 <-- while 문이 완료되기 전에 실행되어진 결과를 일괄처리하는 문..
자세한 내용은 밑에(sql help 기능에서 참조한 것임)
end
대략적으로 이런 형식으로 진행된다.
참고 할 것은 If 문을 사용할 시 기존의(VB와 같은) 사용방식과 다른 Then 대신 Begin / End를 사용한다는 것이다.
While문 또한 조건을 형성하고 Begin으로 시작하여 End로 끝낸다. 처리 결과 내용을 반영(exec하거나)
중간에 어떤 조건에 만족 해서 나오려면 아래 예문과 같이 하면 된다.
|
WHILE (SELECT AVG(price) FROM titles) < $30 -본 내용은 MS사의 SQL 설명문에서 참조 하였음- |
만약 while 문이 중복 적용 된다고 한다면...
While 조건문 begin
while 조건문 begin
~~~
~~
End
End
형식으로 나열 하면된다.
*참조* [exec]
*참조2* [중복 While 사용시]
중복 While문 사용 시 주안점-. 가장위에 while문과 관련되어서 다음 while문이 적용되면, 조건문의 숫자들이 정확하게 돌아가는지 유무를 판별해야 한다.
|
delcare d int ~~~ set a = param(0) set b = round(convert(float, (param(1))/ convert(float,5)) + 0.499) <-- 무조건 5로 나눈 나머지 올림처리 set s = 1 set d = a*5 + 1 <- 수정 (a-1)*5 + 1
While a <= b begin <-- 만약 이 중복 while 문이 5의 배수로 나누어서 진행 될 경우 while s <= d begin <-- 다음 2번째 실행은 6부터 진행되어 져야 하는 데 위에 셋팅으로 하면 ~~~ End exce ~~ End |
Comment Write
Comment List