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(我在上面写的)我刚刚发现我用游标制作了另一个“国家”函数我把它扔了,然后使用了你的第二个函数它现在工作了。非常感谢你的帮助干杯!