- 类别:
ACCEPTED_VALUES(系统数据指标函数)¶
返回列值 不 匹配布尔表达式的记录数。
语法¶
SNOWFLAKE.CORE.ACCEPTED_VALUES ON ( <column>, <lambda-expression> )
实参¶
column
指定包含与
lambda-expression
中的布尔表达式进行比较的值的列。lambda-expression
指定由以下语法组成的 lambda 表达式:
column -> expression
该函数返回
column
值与布尔表达式不匹配的记录数。此表达式可以使用以下运算和函数:lambda 表达式中的
column
始终与column
实参匹配。
允许的数据类型¶
column
和 lambda-expression
实参中指定的列可以包含以下任何数据类型:
DATE
FLOAT
NUMBER
TIMESTAMP_LTZ
TIMESTAMP_NTZ
TIMESTAMP_TZ
VARCHAR
返回¶
该函数会返回 NUMBER 值。
访问控制要求¶
关联和运行系统 DMF 需要系统 DMF 的 USAGE 权限。您可以授予 SNOWFLAKE.DATA_METRIC_USER 数据库角色,以便为用户提供所有系统 DMFs 的 USAGE 权限。有关更多信息,请参阅 授予系统 DMFs 的 USAGE 权限。
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
使用说明¶
您不能直接调用此函数。要了解如何将该函数与表或视图关联以使其定期运行,请参阅 关联 DMF 以自动执行数据质量检查。
您可以使用 SYSTEM$DATA_METRIC_SCAN 函数来对表运行 ACCEPTED_VALUES 函数,而无需将其关联。
您不能多次将此函数与同一列关联。
重命名 ACCEPTED_VALUES 函数中指定的列会中断该函数与该列的表或视图之间的关联。如果重命名该列,则必须将该函数与表或视图重新关联。
示例¶
将该函数与表 t1
关联,这样它就会返回列 age
值 不 等于五的记录数。
ALTER TABLE t1
ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.ACCEPTED_VALUES ON (age, age -> age = 5);
将该函数与视图 order_details
关联以使其返回列 order_status
的值 不 在字符串 Pending
、Dispatched
和 Delivered
列表中的记录数。
ALTER VIEW order_details
ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.ACCEPTED_VALUES ON (
order_status,
order_status -> order_status IN ('Pending', 'Dispatched', 'Delivered'));