# **DECODE**

将control\_value数值与后面的一系列的偶序列数值相比较，以决定返回值。

## 语法{#grammar}

DECODE(**control\_value**, **value1**, **result1**\[,value2,result2…] \[,default\_result])

- **control\_value**\*  必需，期望比较的值，可以是表达式。
- **value1**  必需，第一个比较值。
- **result1**  必需，如果control\_value等于第一个比较值，则返回此参数值。
- **value2**  第二个比较值。
- **result2**  如果control\_value等于第二个比较值，则返回此参数值。
- **valueN**  第N个比较值。
- **resultN**  如果control\_value等于第N个比较值，则返回此参数值。
- **default\_result**  默认值，如果前面`偶数序列值`都不能匹配，则返回此参数值，如果没有此参数，则返回null。

需要注意的是：所有返回值类型必须相同。

## 示例{#examples}

- `decode( x , 1 , 'x is 1', 2 ,'x is 2', 'others')`
  - 当x等于1时，则返回'x is 1'。
  - 当x等于2时，则返回'x is 2'。
  - 否则，返回'others'。
- `decode( x , 1 , 'x is 1', 2 ,'x is 2', null, 'nulls')`
  - 当x等于1时，则返回'x is 1'。
  - 当x等于2时，则返回'x is 2'。
  - 当x为null，则返回'nulls'。
  - 否则，返回null。
