MSSQL

MSSQL 흐름제어문

우정2 2022. 6. 15. 15:24
반응형

흐름 제어문의 종류

 

흐름 제어문이란 언어의 처리 순서를 변경하거나 변수를 선언하는 등의 문장을 말한다.

 

○ GOTO 라벨

  - GOTO 를 만나면 라벨 부분으로 무조건 건너뛴다. 라벨은 라벨: 으로 정의한다.

예)

DECLARE...

SET...

table_label1:

.

.

IF .... GOTO table_label1

.

--> GOTO table_label1 을 만나면 table_label1: 부분으로 건너 뛴다.

 

○ RETURN

  - RETURN 은 무조건 수행을 중지 하고 원래 호출된 곳으로 돌아간다.

 

○ IF / ELSE

  - 이름만 들어도 알만한 문법이다. 주의 할 점은  조건문 안의 SQL문장이 둘 이상이라면 BEGIN / END 로 묶어 준다.

예)

IF @begin > @end

    BEGIN

        SELECT * FROM 테이블1 WHERE 조건

        RETURN

    END

ELSE

    SELECT * FROM.........

 

○ WHILE / BREAK / CONTINUE

  - WHILE 다음에 조건으로 반복을 하게 되고,

    BREAK  를 만나면 무조건 WHILE 을 벗어나고,

    CONTINUE 를 만나면 무조건 WHILE 로 돌아간다.

예)

WHILE  조건

BEGIN

         반복하는 동안 실행할 문장들...

         IF 조건

               BREAK

         IF 조건

               CONTINUE

END

 

○ EXEC[UTE]

  - EXEC 와 EXECUTE 는 같은 의미이다.

  - 두가지 용도로 사용되는데,

  - 첫 번째, 스토어드 프로시저를 실행할 때 사용한다.

예)

EXEC stored_procedure

 

  - 두 번재, SQL 문장을 동적으로 변화시키며 수행할 수 있다.

예)

DECLARE  @sql  VARCHAR(255)

SET  @sql  = 'SELECT COUNT(*) FROM '

SET  @sql  =  @sql + 'titles '

EXEC(@sql)

--> 실제 수행되는 문장은 SELECT COUNT(*) FROM titles 가 된다.

 

○ CASE

  - 단순 CASE

예)

SELECT

    CASE type

        WHEN 'a'  THEN  'Apple'

        WHEN 'b'  THEN  'Banana'

        ELSE  'No Data'

    END AS  과일

, price

FROM titles

 

  - 검색된 CASE

예)

SELECT  title_id

, qty AS '수량'

, CASE

       WHEN  qty >= 50  THEN  'A'

       WHEN  qty >= 30  THEN  'B'

       ELSE  'C'

  END  AS  '등급'

FROM  titles

 

반응형