【发布时间】:2019-09-16 09:11:15
【问题描述】:
我有一个包含两列“Product_Type”和“Product_SubType”的 SQL 表。产品具有基于类型和子类型组合定义的唯一名称。但该表没有定义产品名称。当我查询表格时,我希望显示产品名称。 所以我试图创建一个包含不同类型案例的函数,并在 select 语句中输出产品名称:
create function getNameByTypes( MainType varchar, SubType varchar)
return varchar as $$
declare TypeName varchar;
begin
TypeName = case MainType
when 'type_I' then
case SubType
when 'sub_type_1' then 'TypeName1'
when 'sub_type_2' then 'TypeName2'
end
else 'unknown_type' end;
return TypeName;
end;
$$
并使用如下功能:
select *, getNameByParams(Product_Type, Product_SubType) as TypeName
where id = 'ABC'
我收到一个错误SQL Error [42601]: ERROR: syntax error at or near "return"。我的问题是:创建函数并使用函数查询的正确方法是什么?
【问题讨论】:
-
您从哪个表中选择?您甚至想要一个函数,还是直接将 case 语句放入您的查询中?
标签: postgresql function select