其實我們只要很簡單的改寫一下 procedure的 code即可(還不知道 procedure或忘記的話可以點我)
# 這是原本產生 procedure的 codeCREATE OR REPLACE PROCEDURE `dataset_name.user_using_time`(parameter1 data_type, parameter2 data_type )
BEGIN
-- 原本的 Code
-- 最後記得加 ;
END;# 這是產生 table function的 codeCREATE OR REPLACE TABLE FUNCTION
`dataset_name.user_using_time`(parameter1 data_type, parameter2 data_type )
AS ((
-- 原本的 Code
-- code 的部份要用兩個括弧包起來
));
這邊說明一下兩者的不同之處
Call procedure只能觀看結果,無法再延伸運算
Call table function可以像表格一樣當做資料來源,再延伸做運算
實用應用範例
SELECT
second/3600 AS hour
FROM
`dataset_name.user_using_time`("user_id", "video")
但要特別注意,不可以有同名的 procedure和 table function