创建一些 UDF 后,以下查询有效:
SELECT
rsp.id
FROM TABLE(UDF_1('2019-04-18 12:00:00'::timestamp_ltz)) AS rsp
但是,此查询:
SELECT
rsp.id
FROM TABLE(UDF_1('2019-04-18 12:00:00'::timestamp_ltz)) AS rsp
JOIN TABLE(UDF_2('2019-04-18 12:00:00'::timestamp_ltz)) AS rasp ON
rsp.id = rasp.id AND
rsp.timestamp = rasp.start;
给我:
SQL compilation error: error line 5 at position 8 invalid identifier 'RSP.ID'
如果第一个查询不起作用,我会理解的。但是,既然第一个查询确实有效,为什么我被告知RSP.ID
无效?
我能够找到一个解决方案:
SELECT
rsp.id
FROM (SELECT * FROM TABLE(UDF_1('2019-04-18 12:00:00'::timestamp_ltz))) AS rsp
JOIN (SELECT * FROM TABLE(UDF_2('2019-04-18 12:00:00'::timestamp_ltz))) AS rasp ON
rsp.id = rasp.id AND
rsp.timestamp = rasp.start;
工程。我们推测JOINs
发生在函数执行之前,因此"没有什么"可以JOIN
。
我相信通过仅选择我想要反对的行可以更有效*
,但上述内容对我有用。