问题 Bigquery 存储过程不过滤
Problem Bigquery stored procedure not filtering
我正在尝试使用存储过程从我的客户那里获取一些数据,在看起来像这样的查询中按日期和购买渠道过滤 table:
CREATE OR REPLACE PROCEDURE `sandbox.clients.dateandchannel`
(IN DT DATE,
IN CH STRING)
BEGIN
SELECT
client_id,
purchase_id,
purchase_date,
channel
FROM
`trusted-zone.clients_purchases`
WHERE
channel = CH
AND purchase_date = DT;
END
在 运行 程序之后,我使用以下调用:
CALL `sandbox.clients.dateandchannel`('2021-09-11','Ecommerce');
调用执行并且 returns 一个 table,但结果从未被过滤。
日期不对应“2021-09-11”,频道不对应'Ecommerce'
我不明白这是否是查询的问题,或者我是否在概念上做错了什么,但如果有人知道为什么会发生这种情况,我会很高兴。
此外,我的下一步是将结果 table 提取到临时 table 等,以便在多个查询的其他步骤中使用此结果。例如在 with 里面。
提前致谢
如果从基础回到语义上:
- 程序执行代码 return 除了 OUT 模式下的参数外什么都没有
- 函数执行代码和return一些东西。
因此,根据设计和语义,程序永远不会向您发送结果!
如果您需要将参数传递给某些东西并获得结果集作为答案,您需要一个函数。 table functions 就是为此而生!
我正在尝试使用存储过程从我的客户那里获取一些数据,在看起来像这样的查询中按日期和购买渠道过滤 table:
CREATE OR REPLACE PROCEDURE `sandbox.clients.dateandchannel`
(IN DT DATE,
IN CH STRING)
BEGIN
SELECT
client_id,
purchase_id,
purchase_date,
channel
FROM
`trusted-zone.clients_purchases`
WHERE
channel = CH
AND purchase_date = DT;
END
在 运行 程序之后,我使用以下调用:
CALL `sandbox.clients.dateandchannel`('2021-09-11','Ecommerce');
调用执行并且 returns 一个 table,但结果从未被过滤。
日期不对应“2021-09-11”,频道不对应'Ecommerce'
我不明白这是否是查询的问题,或者我是否在概念上做错了什么,但如果有人知道为什么会发生这种情况,我会很高兴。
此外,我的下一步是将结果 table 提取到临时 table 等,以便在多个查询的其他步骤中使用此结果。例如在 with 里面。
提前致谢
如果从基础回到语义上:
- 程序执行代码 return 除了 OUT 模式下的参数外什么都没有
- 函数执行代码和return一些东西。
因此,根据设计和语义,程序永远不会向您发送结果!
如果您需要将参数传递给某些东西并获得结果集作为答案,您需要一个函数。 table functions 就是为此而生!