POSTGRESQL-返回select查询时出错

POSTGRESQL-返回select查询时出错,postgresql,Postgresql,这是我的函数,执行此函数时返回错误: create or replace function country(varchar) returns customer(customer_id integer, first_name varchar, last_name varchar) as $$ select customer_id, customer.first_name,

这是我的函数,执行此函数时返回错误:

create or replace function country(varchar) 

returns customer(customer_id integer,
                 first_name varchar,                       
                  last_name varchar) as $$


 select customer_id, customer.first_name, customer.last_name 

 from customer 

     inner join address on customer.address_id = address.address_id 
     inner join city on address.city_id = city.city_id 
     inner join country on city.country_id = country.country_id 

where country = '$1';

$$  
language sql;

返回查询时出错。

使用此解决方案的创建类型:

create type ct as (customer_id integer, first_name varchar, last_name varchar)
现在创建函数

create or replace function country(varchar) 

returns ct as $$

select customer_id, first_name, last_name from customer 
     inner join address on customer.address_id = address.address_id 
     inner join city on address.city_id = city.city_id 
     inner join country on city.country_id = country.country_id    
where country = $1;

$$ language sql;
还是用这个

create or replace function country(varchar) 

returns table(customer_id integer,
                 first_name varchar,                       
                  last_name varchar) as $$ 

 select customer_id, customer.first_name, customer.last_name 

 from customer 

     inner join address on customer.address_id = address.address_id 
     inner join city on address.city_id = city.city_id 
     inner join country on city.country_id = country.country_id 

where country = $1;

$$language sql;

我认为您有输入错误,您应该使用
where country=$1
,不带单引号。您遇到了什么错误?错误:语法错误位于或接近“整数”行2:返回客户(customer_id integer,谢谢Tim,我删除了单引号,但此错误表明我有语法错误,并指出该整数您能再次帮助我吗?我是postgresERROR的新用户:语法错误在或接近“integer”行2:返回客户(customer_id integer Mureinik,谢谢这是我的错误。谢谢。我使用了您编辑的函数,但现在它返回了。您能再次帮助我吗?DVD租赁=#选择国家(“阿尔及利亚”);国家---------------------(第1行)这是我得到的结果,你在使用游标吗?你在使用哪一个函数1或2(我在上面写的)我刚刚发现我用游标制作了另一个“国家”函数我把它扔了,然后使用了你的第二个函数它现在工作了。非常感谢你的帮助干杯!