

# ColumnValues
<a name="dqdl-rule-types-ColumnValues"></a>

针对列中的值运行表达式。

**语法**

```
ColumnValues <COL_NAME> <EXPRESSION>
```
+ **COL\$1NAME** — 要根据其评估数据质量规则的列的名称。

  **支持的列类型**：任何列类型
+ **EXPRESSION** — 针对规则类型响应运行以生成布尔值的表达式。有关更多信息，请参阅 [Expressions](dqdl.md#dqdl-syntax-rule-expressions)。

**示例：允许的值**

以下示例规则检查指定列中的每个值是否在允许的值集中（包括零值、空值以及仅包含空格的字符串）。

```
ColumnValues "Country" in [ "US", "CA", "UK", NULL, EMPTY, WHITESPACES_ONLY ]
ColumnValues "gender" in ["F", "M"] where "weightinkgs < 10"
```

**示例：正则表达式**

以下示例规则根据正则表达式检查列中的值。

```
ColumnValues "First_Name" matches "[a-zA-Z]*"
```

**示例：日期值**

以下示例规则根据日期表达式检查日期列中的值。

```
ColumnValues "Load_Date" > (now() - 3 days)
```

**示例：数值**

以下示例规则检查列值是否与特定的数字约束条件相匹配。

```
ColumnValues "Customer_ID" between 1 and 2000
```

**零值行为**

 对于所有 `ColumnValues` 规则（`!=` 和 `NOT IN` 除外），`NULL` 行都不能通过该规则。如果由于零值而导致不能通过规则，则失效原因将显示如下：

```
Value: NULL does not meet the constraint requirement!
```

 以下示例复合规则提供了一种显式允许 `NULL` 值的方法：

```
(ColumnValues "Age" > 21) OR (ColumnValues "Age" = NULL)
```

 使用 `!=` 和 `not in` 语法的否定 ColumnValues 规则将允许 `NULL` 行。例如：

```
ColumnValues "Age" != 21
```

```
ColumnValues "Age" not in [21, 22, 23]
```

 以下示例提供了一种让 `NULL` 值显式失效的方法 

```
(ColumnValues "Age" != 21) AND (ColumnValues "Age" != NULL)
```

```
ColumnValues "Age" not in [21, 22, 23, NULL]
```