[英]Can´t save view with function (GCP)
我正在使用 BIGQUERY 尝试使用带有 Function 的查询生成视图(这是一个示例,而不是查询本身)
CREATE TEMP FUNCTION validate_rut(s string)
返回字符串
作为 (
if(length(s) = 10 或 length(s) = 12, left(regexp_replace(s, r'[.-]', ''), 8)
, if(length(s) = 11 或 length(s) = 9, left(regexp_replace(s, r'[.-]', ''), 7)
, 无效的)
)
);
select 车辙,验证车辙(车辙)
从(选择'11.111.111-8'车辙联合所有
select '11111111-8' 联合所有
select '2.222.222-9' 联合所有
select '2222222-9'联合所有
select '33333333' 联合所有
select '7777777'
)
问题是,当我尝试将查询另存为视图时,我收到此消息。
“不支持在视图中创建临时 Function 语句”
这是我第一次尝试做这样的事情。
谢谢你。
您可以使用以下语法将 function 创建为永久 udf:
CREATE FUNCTION `my_project.my_dataset.validate_rut`(s string)
RETURNS string
AS (
if(length(s) = 10 or length(s) = 12 , left(regexp_replace(s, r'[.-]', ''), 8)
, if(length(s) = 11 or length(s) = 9, left(regexp_replace(s, r'[.-]', ''), 7)
, null)
)
);
在此示例中,您的永久 udf 是在名为udf
的现有Bigquery
dataset
上my_dataset
的。
然后,您可以使用以下语法按预期查询您的 function:
select rut, `my_project.my_dataset.validate_rut`(rut)
from (select '11.111.111-8' rut union all
select '11111111-8' union all
select '2.222.222-9' union all
select '2222222-9'union all
select '33333333' union all
select '7777777'
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.