0
我有一個函數接受兩個整數作爲參數my_function(input_a,input_b)。是否有簡單的方法將CTE的結果(返回記錄input_a,input_b)傳遞給函數?PostgreSQL CTE作爲參數記錄功能
我應該看看用for循環編寫自定義函數還是有更好的方法?
我有一個函數接受兩個整數作爲參數my_function(input_a,input_b)。是否有簡單的方法將CTE的結果(返回記錄input_a,input_b)傳遞給函數?PostgreSQL CTE作爲參數記錄功能
我應該看看用for循環編寫自定義函數還是有更好的方法?
如果函數返回話單記錄:
WITH cte AS (SELECT 1 a, 2 b)
SELECT my_function(a, b) FROM cte;
會工作。但是,如果該函數是一個SRF(Set-Returning-Function),那麼您需要使用LATERAL,讓數據庫知道您想要將JOIN語句中之前表的結果反饋給函數中的函數加入。這是完成,像這樣:
WITH cte AS (SELECT 1 a, 2 b)
SELECT * FROM cte, LATERAL my_function(a, b);
橫向將導致PostgreSQL採取每行從CTE並運行「創建my_function」與該行的值,返回該函數的結果對整個SELECT語句。
'cte as(select 1a,2b)從cte中選擇my_function(a,b);'不起作用?.. –