

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Case 문
<a name="iot-sql-case"></a>

Case 문은 switch 문과 같은 분기 실행에 사용할 수 있습니다.

구문:

```
CASE v WHEN t[1] THEN r[1] 
  WHEN t[2] THEN r[2] ... 
  WHEN t[n] THEN r[n] 
  ELSE r[e] END
```

표현식 *`v`*는 각 `WHEN` 절의 *`t[i]`* 값과 일치 여부가 평가됩니다. 일치가 발견될 경우 해당하는 *`r[i]`* 표현식이 `CASE` 문의 결과가 됩니다. `WHEN` 절은 일치하는 절이 두 개 이상 있는 경우 첫 번째 일치 절의 결과가 `CASE` 문의 결과가 되도록 순서대로 평가됩니다. 일치하는 항목이 없는 경우 `ELSE` 절의 *`r[e]`*가 결과입니다. 일치하는 항목과 `ELSE` 절이 없는 경우 결과는 `Undefined`입니다.

`CASE` 문에는 적어도 하나의 `WHEN` 절이 필요합니다. `ELSE` 절은 선택 사항입니다.

예:

주제 `topic/subtopic`에 게시된 수신 페이로드:

```
{
    "color":"yellow"
}
```

SQL 문 

```
SELECT CASE color
        WHEN 'green' THEN 'go'
        WHEN 'yellow' THEN 'caution'
        WHEN 'red' THEN 'stop'
        ELSE 'you are not at a stop light' END as instructions
    FROM 'topic/subtopic'
```

결과 출력 페이로드:

```
{
    "instructions":"caution"
}
```

**참고**  
*`v`*가 `Undefined`일 경우 case 문의 결과는 `Undefined`입니다.