pl sql使用3个表编写函数

pl sql使用3个表编写函数,sql,plsql,Sql,Plsql,我在pby表中有一个名为assign_to的列,在assign_to中我有用户,角色作为数据当我选择用户时,我必须从pus表中检索用户详细信息,当我选择角色时,我必须使用pl/sql函数从pro表中检索角色详细信息。有人能帮我摆脱这个吗 case when assign_to='users' then (select users from pus where pby.id=pus.id) assign_to='roles then (select roles from pro where pr

我在pby表中有一个名为assign_to的列,在assign_to中我有用户,角色作为数据当我选择用户时,我必须从pus表中检索用户详细信息,当我选择角色时,我必须使用pl/sql函数从pro表中检索角色详细信息。有人能帮我摆脱这个吗

case
when assign_to='users'
then (select users from pus where pby.id=pus.id)
assign_to='roles 
then (select roles from pro where pro.id=pby.id)
else null
end

我尝试使用case语句,但它不起作用。

您缺少“角色”的结束引号。 试试这个:

case 
when assign_to='users' then (select users from pus where pby.id=pus.id) 
when assign_to='roles' then (select roles from pro where pro.id=pby.id) 
else null 
end

它不起作用是不可接受的问题描述。好吧,您应该将它添加到pl/sql函数中。