

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Pernyataan kasus
<a name="iot-sql-case"></a>

Pernyataan kasus dapat digunakan untuk eksekusi percabangan, seperti pernyataan switch.

Sintaksis:

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

Ekspresi {{`v`}} dievaluasi dan dicocokkan untuk kesetaraan terhadap {{`t[i]`}} nilai masing-masing klausa. `WHEN` Jika kecocokan ditemukan, {{`r[i]`}} ekspresi yang sesuai menjadi hasil `CASE` pernyataan. `WHEN`Klausa dievaluasi secara berurutan sehingga jika ada lebih dari satu klausa yang cocok, hasil klausa pencocokan pertama menjadi hasil pernyataan. `CASE` Jika tidak ada kecocokan, {{`r[e]`}} dari `ELSE` klausa adalah hasilnya. Jika tidak ada kecocokan dan tidak ada `ELSE` klausa, hasilnya adalah`Undefined`.

`CASE`pernyataan membutuhkan setidaknya satu `WHEN` klausa. Sebuah `ELSE` klausa adalah opsional.

Contoh:

Payload masuk dipublikasikan pada topik: `topic/subtopic`

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

Pernyataan 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'
```

Muatan keluaran yang dihasilkan adalah:

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

**catatan**  
Jika {{`v`}} ya`Undefined`, hasil dari pernyataan kasus adalah`Undefined`.