将数组传递给PostgreSQL中的函数

阿西夫·汗

我有一个表,我想在其中使用一个函数一次搜索所有记录。但是当我给它输入时,我的函数什么都不显示。如果您有任何想法,请如何编写一个函数以使其一次获取所有值并打印其结果。我正在与您分享我的桌子和功能。

select * from v_payments ;
 entity_name | patient_name | business_entity_id | payment_type_id | entered_date 
-------------+--------------+--------------------+-----------------+--------------
 patient     | ali          |                  1 |               5 | 2020-01-01
 male        | baba         |                  2 |               4 | 2020-02-01
 female      | reshma       |                  7 |               8 | 2020-03-01

功能如下

create or replace function get_patient_data (b_entity_id[],p_type_id[],e_date date[]) returns table (
entity_first_name  TEXT,
  patient_first_name TEXT,
  business_entity_id INTEGER,
  payments_type_id  INTEGER,
  entry_date     DATE) as $$
begin
SELECT
  entity_name,
  patient_name,
  business_entity_id,
  payment_type_id,
  entered_date
FROM v_payments
WHERE business_entity_id = ANY($1) and payment_type_id = ANY($2) and entered_date = ($3); end; $$ language plpgsql ;
阿基列什·米什拉

该功能很少有问题。return query函数中不存在,您正在date与之比较date[]将引发错误。因此,使用相同的逻辑修复错误后的函数查询如下所示:

create or replace function get_patient_data (b_entity_id int[],p_type_id int[],e_date date[]) 
returns table (
  entity_first_name  TEXT,
  patient_first_name TEXT,
  business_entity_id INTEGER,
  payments_type_id  INTEGER,
  entry_date     DATE) as $$
begin
return query
SELECT
  entity_name,
  patient_name,
  business_entity_id,
  payment_type_id,
  entered_date
FROM v_payments
WHERE business_entity_id = ANY($1) 
and payment_type_id = ANY($2) 
and entered_date = any($3); 
end; 
$$ 
language plpgsql;

现在您可以像下面这样调用它:

select * from get_patient_data('{1,2}','{5,4}','{''2020-01-01'',''2020-02-01''}')

演示

由于将函数的所有参数都当作数组,因此您必须像上面那样在数组中提供它。您可以根据需要更改条件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将数组项传递给PowerShell中的函数

来自分类Dev

将数组作为参数传递给pick中的函数

来自分类Dev

将2d数组传递给C ++中的函数

来自分类Dev

将2D数组传递给c中的函数

来自分类Dev

如何将数组传递给VBA中的函数?

来自分类Dev

将数组传递给C中的函数

来自分类Dev

将字符串数组传递给C中的函数

来自分类Dev

将数组传递给erlang中的函数

来自分类Dev

如何将json数组传递给postgresql函数

来自分类Dev

将数组中的函数传递给scanf时发生异常

来自分类Dev

如何将习俗类型数组传递给PostgreSQL函数

来自分类Dev

将数组的指针传递给C中的函数

来自分类Dev

将结构数组中的某个条目传递给函数

来自分类Dev

将包含输入参数的数组传递给Julia中的函数

来自分类Dev

如何使用Pythonnet将数组传递给.net中的函数?

来自分类Dev

将3维数组传递给C中的函数

来自分类Dev

将数组作为参数传递给pick中的函数

来自分类Dev

将数组和变量传递给Perl中的函数

来自分类Dev

将数组传递给函数

来自分类Dev

将指针传递给构造函数中的数组

来自分类Dev

将数组对象传递给cpp中的函数

来自分类Dev

将多维数组传递给python中的函数

来自分类Dev

将数组传递给erlang中的函数

来自分类Dev

将特定大小的数组传递给C中的函数

来自分类Dev

如何将JavaScript数组传递给DataTable()中的函数

来自分类Dev

将结构数组传递给C中的值函数

来自分类Dev

将数组中的函数传递给scanf时发生异常

来自分类Dev

将数组传递给函数

来自分类Dev

将多个数组作为输入传递给 PostgreSQL 中的函数