我在使用IN()的where子句中使用多值(逗號分隔)參數作爲過濾器的postgres函數遇到問題。在IN中使用多值參數
CREATE FUNCTION company_sites_report(company_list text)
RETURNS TABLE(company text, num_suppliers BIGINT)
LANGUAGE SQL
AS $$
SELECT company, count(supplier_id) num_suppliers
FROM MySitesTable
WHERE company IN ($1)
GROUP BY company;
$$;
所以,當我調用該函數:
SELECT *
FROM company_sites_report('Company1,Company2');
看來治療參數值作爲一個整體字符串,並將其拆分爲不特定的字符串(CSV)。我如何讓它按照我的需要行事?
嘗試可變參數..或plpgslq和動態串 –