gpt4 book ai didi

sql - 如何在 PostgreSQL 中使用 case 获取多个记录?

转载 作者:行者123 更新时间:2023-11-29 13:06:38 25 4
gpt4 key购买 nike

我有两个表:

 1) fk_tblUserEmployeeList
2) fk_tblmanageremployeelist

在这两个表中,一列很常见,即 userid,我从 UI 获取 userid。我想要第一个表中的 userid 记录。如果没有,则从第二个表中获取相同 userid 的记录..

我正在尝试使用 CASE,但出现错误:

ERROR:  more than one row returned by a subquery used as an expression

下面是我的查询:

select case when ( select count(userid) 
from fk_tblUserEmployeeList
where userid=1
) > 1
then ( select employeeid
from fk_tblUserEmployeeList
where userid=1
)
else ( select employeeid
from fk_tblmanageremployeelist
where userid=1
)
end

最佳答案

使用您提供的代码,案例 的结果将有多个。由于 case 之前的 select,这会产生错误。您不能在其中选择多个

select

case when (select count(userid) from fk_tblUserEmployeeList where userid=1) > 1
then (select employeeid from fk_tblUserEmployeeList where userid=1)
else (select employeeid from fk_tblmanageremployeelist where userid=1)
end

因此,为了避免这种情况,您可以使用 IF .

应该是这样的:

IF (select count(userid) from fk_tblUserEmployeeList where userid=1) > 1 THEN
(select employeeid from fk_tblUserEmployeeList where userid=1)
ELSE
(select employeeid from fk_tblmanageremployeelist where userid=1)
END IF;

关于sql - 如何在 PostgreSQL 中使用 case 获取多个记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8724282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com