IN()を使用しているwhere句でフィルタとして多値(カンマ区切り)パラメータを使用してこのpostgres関数に問題があります。IN()で多値パラメータを使用する
SELECT *
FROM company_sites_report('Company1,Company2');
1つの文字列全体としてパラメータ値を処理し、特定の文字列(CSV)に分割していないようだ。
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;
$$;
は、だから私は、関数を呼び出すとき。私が必要としているように行動させるにはどうすればいいですか?
は可変長してみてください。..またはplpgslqと動的な文字列 –